2016-10-22 95 views
1

我試圖運行java應用程序中的簡單提示命令。無法在Java程序中執行提示命令

無論我嘗試什麼,我alwasy收到CreateProcess error=2

這是我的代碼:

File f = new File("C:/Users/my/path/to/the/executable/"); 
String[] commands = { "text.txt", "--command1" /* others commands */ }; 
// omitting try/catch 
Process p = Runtime.getRuntime().exec("myprogram.exe", commands, f); 
p.waitFor(); 
// other code 

的exe採用作爲第一個參數爲.txt文件,然後它需要正常的命令作爲--command1。

我怎樣才能得到這個工作?提前致謝!

+0

你有什麼錯誤? – talex

+0

@talex,更具體地說是: Java.io.IOException:無法運行程序「myprogram.exe」(在目錄「/ thedirectory」中):error = 2,沒有這樣的文件或目錄 – Matteo

回答

1

目錄參數不是可執行文件的路徑,它是工作目錄,所以如果您在命令行上,它將是您在啓動命令時所處的當前目錄。

您需要在第一個參數指定的完整路徑,或將其添加到PATH環境變量

+0

謝謝!錯誤消失了,但有一個新問題。如果我在cmd中手動運行它,則同樣的命令產生輸出,但如果從java啓動則不返回任何內容。會是什麼呢? – Matteo

+1

你需要一個BufferReader對象來讀取cmd的輸出....類似於:BufferedReader bf = new BufferedReader(new InputStreamReader(p.getInputStream()));既然你沒有顯示你的「其他代碼」,你無法知道你是否有這個。 – DevilsHnd