簡體   English   中英

使用Java執行命令並將生成的輸出保存在另一個目錄中

[英]execute a command using java and save generated output in another directory

我正在開發eclipse rcp產品,需要從一個目錄運行命令,並將輸出保存到另一個目錄。

命令的輸出是一個文件。

我沒有怎么做。

我的代碼是這樣的,不起作用。

Runtime r = Runtime.getRuntime();
Process  p = r.exec(("CMD /C cd D:\\dir1\\bin" + " && " + command),
            null, new File("D:\\Data\\test"));

因此,命令需要從dir1 / bin運行,該命令的輸出是一個文件,應保存在data / test中。

但是從上面的代碼中,輸出(即生成的文件)保存在dir1 / bin中,這是不期望的。

echo This is a command > output.txt

嘗試在命令末尾添加“ > output.txt ”,以將其插入文件

您可以使用流程對象(p.getInputStream())給定的InputStream和文件的FileOutputStream。 創建一個具有無限while循環的新線程,讀取其中的字符並將其寫入文件。

Process p = ....
InputStream is = p.getInputStream();
FileOutputStream fos = new FileOutputStream(new File("output.txt"));
new Thread(new Runnable() {
    public void run() {
        while (true) {
            char c = (char)is.read();
            if (c > -1) {
                fos.write(c);
            } else {
                return;
            }
        }
    }
}).start();

我沒有測試代碼,但是應該可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM