我需要執行帶有2個參數的命令行程序。但是,它必須在工作目錄中執行。即「command arg1 arg2」,而不是「c:\ folder \ subfolder \ command arg1 arg2」我需要在Java的特定工作目錄中執行命令行程序
從這裏的其他問題,我已經開始使用Runtime.exec(cmdArray,null,workingDirectory);但我不斷收到「CreateProcess錯誤= 2,系統找不到指定的文件」。我已經檢查過了,路徑和文件都存在,所以我不知道發生了什麼問題。這是我正在使用的代碼。
String [] fileName = {"mp3wrap.exe", "Clear_10", "*.mp3"};
String dirName = "E:\\Music\\New Folder\\zz Concatinate\\Clear_10";
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(fileName, null, new File(dirName));
BufferedReader input = new BufferedReader(new InputStreamReader
(pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null) {
System.out.println(line);
}//end while
int exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);
}//end try
catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}//end catch`
我得到這個錯誤:
產生java.io.IOException:不能運行程序 「mp3wrap.exe」(目錄 「E:\音樂\新建文件夾\ ZZ Concatinate \ Clear_10」) :CreateProcess error = 2,系統找不到指定的文件
給全程?你可以詳細闡述一下嗎? – 2014-03-05 08:35:38
@Zedai:在Windows'「C:\\ Programs \\ tools \\ audio \\ JoinTheParty \\ Player \\ mp3wrap.exe」「或類似的東西。例如,在Linux'「/ usr/local/bin/mp3wrap」中。 –
重讀這個問題並延長我的答案。 –