我想在啓動外部程序時使用參數(其中一個參數是將配置文件加載到該外部程序)後單擊javafx應用程序的按鈕(btn事件不是包括在代碼中)但我想知道爲什麼它一直給我錯誤!如何在Java中使用參數執行外部程序
我的IDE是InjellJ IDEA社區版
我知道這個問題是重複的,但這裏給出的這個平臺已經嘗試過,沒有sucess的所有例子中不過我的代碼中包含的配置文件作爲變元的
的一部分下面是代碼
private String appDomain = Paths.get("").toAbsolutePath().normalize().toString();
private String exepath = appDomain+"\\src\\bin\\exeResources\\MyExe.exe";
private String exeargs = appDomain+"\\src\\bin\\exeResources\\MyExe.ppx silent-load";
try {
Runtime r = Runtime.getRuntime();
r.exec(exepath +" "+exeargs);
} catch (IOException e) {
e.printStackTrace();
}
當我刪除 「exeargs」 我的錯誤 CreateProcess的錯誤= 193,%1不是有效的Win32應用程序
讓我很難知道「exeargs」可以用上面的代碼片段。
您的幫助將不勝感激
編輯
的EXEFILE和execonfig我有
System.out.println(exepath+" "+exeargs);
加載位於包的一個在我的項目
**bin.exeResource**
打印路徑和args
給我
C:\Users\{MyUser}\OneDrive\IntelliJ IDEA Projects\MyProject Package\src\bin\exeResources\MyExe.exe ...\src\bin\exeResources\MyExe.ppx silent-load
加入錯誤
CreateProcess error=193, %1 is not a valid Win32 application
您是否打印過「exepath」的結果?它是否包含任何空格?事實上,你確定可執行文件在那個路徑中嗎?看起來你正在尋找一個相對目錄,如果你的當前目錄不在'src'目錄之上,那麼這個目錄可能會失敗。 – RealSkeptic
該.exe文件是完整的先生! 和我編輯的問題,並添加輸出,當我嘗試打印參數和我得到的錯誤! 請注意,該.exe文件位於軟件包bin \ exeResources –
啊,所以路徑中有一個空格。 「IntelliJ IDEA項目」 - 包含空格。所以它認爲命令是'C:\ Users \ {MyUser} \ OneDrive \ IntelliJ'並且失敗。我將把它作爲一個副本來關閉它。 – RealSkeptic