我有一個可運行的JAR,我想從另一個Java應用程序調用。我曾嘗試這種解決方案如何從java應用程序執行可運行JAR
[鏈接] how to run a java executable jar in another java program
我能夠執行JAR,但似乎是線程都處於僵局,它永遠不會生成輸出。任何人都可以幫我一下嗎?
我有一個可運行的JAR,我想從另一個Java應用程序調用。我曾嘗試這種解決方案如何從java應用程序執行可運行JAR
[鏈接] how to run a java executable jar in another java program
我能夠執行JAR,但似乎是線程都處於僵局,它永遠不會生成輸出。任何人都可以幫我一下嗎?
您可以使用來自普通Java的ProcessBuilder或使用來自ZeroTurnaround的庫,如zt-exec。第二個工具可以讓你輕鬆地添加例如執行超時,設置出口值等
在第一種情況下,它會看起來像:
Process p = new ProcessBuilder("java", "-jar myjar.jar").start();
p.start();
在第二:
new ProcessExecutor().command("java -jar myjar.jar").execute();
另一種方法,如果你知道該方法有main
方法,你的程序調用方法形式爲main
。
Example.java
public void test() {
String[] starr = <- if you have some parameter
ProgramInJar.main(starr);
}
mytest.jar
public class ProgramInJar {
public static void main(String[] args) {
// your operation
}
}
我已經找到了解決辦法。我已經更新了我的JDK,然後調用該jar並運行。謝謝大家的幫助和時間。
這是正確的方式,因爲它顯示在鏈接中。如果您單獨運行它,那麼該jar是否正常運行? – Dejan
是的,如果我從bat文件運行Jar,它工作正常。 – user82504
如果我從java程序運行Jar,jar運行良好。但是在需要產生輸出的那一端,它停滯不前。 – user82504