0
我有一個在C++(cf.exe)上生成的可執行程序,它從幾個文本文件(.txt)獲取參數,執行一些計算,並創建一個包含結果的文件(results.txt )。這個程序不需要交互。一旦執行,計算完成後,它會自動關閉。Java - 執行外部exe文件
然後,我有其他程序在Java上,其中包含一個執行cf.exe的按鈕。當按下按鈕時,將調用以下方法:
public void executeExternalProgram(){
String filePath = "C++" + File.separator + "cf.exe";
try {
System.out.println("Executing C++ exe...");
Process p = Runtime.getRuntime().exec(filePath);;
} catch (Exception e) {
e.printStackTrace();
}
}
我沒有收到任何錯誤,但按下按鈕時cf.exe未被執行。當我手動執行cf.exe時,結果文件被正確創建。此外,我試圖將其他程序(如notepad.exe)複製到同一個文件夾中,並通過Java執行,沒有任何問題。任何人都可以看到爲什麼它不工作?
嗯,我將打印完整的文件路徑和東西;並且例如確保該字符串確實指向現有文件。你也可以從你的過程對象中打印出exitValue()。 – GhostCat
您的路徑似乎是'C++ \ cf.exe',它將與您的應用程序的當前工作目錄相關。請按照Jägermeister的建議,檢查/發佈你的絕對路徑。 – Thomas
是的,這是一個相對路徑。我已經嘗試了其他程序,並且它不是路徑問題 – David