2016-06-18 77 views
-2

我想運行一個外部程序,它是一個可執行的JAR文件。它可以通過雙擊來執行,但是當我使用Runtime.exec()時,出現文件「不是Windows32應用程序」的錯誤。Java - 創建過程錯誤= 193

try {  
    String filepath = "C://Users//Name//Desktop//Speedtest.jar";  
    Process p = Runtime.getRuntime().exec(filepath);   
} catch (IOException e) {  
    e.printStackTrace(); 
} 
+0

這不是你如何運行一個罐子。但是,必須有更好的方法來做到這一點...如果這個jar包含字節碼,爲什麼不把它添加到你的類路徑? – Dici

+0

爲語法和清晰度重新措辭。 –

回答

0

Jar文件本身不是win-32應用程序。 (它實際上就像一個zip文件。)

java是一個win-32應用程序,它運行jar文件。

所以,你需要使用命令來運行jar文件:

java -jar <jar-file> 

你可以這樣做:

String filepath = "java -jar C:/Users/Name/Desktop/Speedtest.jar"; 
Process p = Runtime.getRuntime().exec(filepath); 

這應該很好地工作。

+0

我試過了,stil不起作用 - .- – Alex

+1

沒錯,但我不推薦它。在Java程序中從命令行調用jar非常尷尬 – Dici

+0

@Alex請參閱編輯。它應該工作正常。 – Hackerdarshi

0

如果您要訪問的程序罐子裏面,只是把它添加到你的classpath當您運行主程序:

java -cp /path/to/your.jar package.name.MainClass

(或簡單地添加到庫中的IDE)