我有一个可运行的Jar,我想从另一个java应用程序调用它。我试过这个解决方案
[link] how to run a java executable jar in another java program
我能够执行jar但似乎线程处于死锁状态并且它从不生成输出。谁能帮助我呢?
答案 0 :(得分:1)
您可以使用普通Java中的ProcessBuilder或使用ZeroTurnaround中的zt-exec库。第二个工具允许您轻松添加例如执行超时,设置退出值等
在第一种情况下,它看起来像:
Process p = new ProcessBuilder("java", "-jar myjar.jar").start();
p.start();
第二名:
new ProcessExecutor().command("java -jar myjar.jar").execute();
答案 1 :(得分:0)
另一种方法是,如果您知道具有main
方法的类,则您的程序将调用main
方法形式jar。
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
}
}
答案 2 :(得分:0)
我找到了解决方案。我已经更新了我的JDK,然后调用了jar它就可以了。谢谢大家的帮助和时间。