2012-09-05 74 views
-1

可能重複:
Run Java program into another Program運行jar文件

我嘗試這是在Eclipse中創建的Java應用程序運行jar文件。 當我用下面的源代碼運行jar文件,然後火無法訪問jar文件錯誤

Process process = run.exec("java -jar TestJava.jar"); 
InputStream inError = process.getErrorStream(); 
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inError)); 
System.out.println("Error=" + bufferedReader.readLine()); 
+1

也許jar文件位於不同的文件夾? – jdevelop

+1

Arrgh ..多少次以及多少重複的問題你會忽略建議? :/ –

回答

0

設置好這個過程應該運行的工作目錄。使用下面的語句設置工作目錄。

Runtime.getRuntime().exec(command, null, new File("path_to_directory")); 
0

首先嚐試cmd窗口上的java -jar命令,看看是否可以運行TestJava.jar。然後嘗試從代碼中運行相同的命令。

Runtime runtime = Runtime.getRuntime(); 
Process proc = runtime.exec("java -jar TestJava.jar"); 
System.exit(0); 
0

您需要提供Java命令的完整路徑。

例如,在Windows下你需要像

C:/Program Files/java/jre/bin/java.exe 

ProcessBuilder & Runtime.exec努力執行你的命令

1

聽起來​​處於時不佔用系統路徑考慮不同的目錄。如果您在Eclipse中運行此代碼,那麼當前工作目錄將與Eclipse項目文件夾相同(除非您以不同方式配置它,這是Eclipse的默認運行位置)。通過相對於當前工作目錄的絕對路徑或路徑指定到​​的路徑。

您需要注意的另外一件事 - 您需要同時使用您正在創建的Process的錯誤流和輸出流。 Process實例的默認輸出/錯誤流緩衝區大小不是很大,並且如果已滿,將導致Process無限期地阻塞更多的緩衝區空間。我建議在單獨的Thread中使用每個流。