我尝试在我的java应用程序中执行外部jar。 .jar在我的java包中(" gui")。 我试过了:
String filepath = this.getClass().getResource("ServerRSS.jar").getPath();
ProcessBuilder pb = new ProcessBuilder("java", filepath);
的System.out.println(文件路径);结果:
/C:/Users/hox/workspace/PraktikumProg/bin/gui/ServerRSS.jar
我的程序无法启动。问题可能是C之前的斜线:?
编辑: 解决方案是:
URL filepath = this.getClass().getResource("ServerRSS.jar");
ProcessBuilder pb;
pb = new ProcessBuilder("java", "-jar", new File(filepath.toURI()).toString());
Process p = pb.start();
答案 0 :(得分:1)
首先让命令工作......只需在命令行上运行。
然后尝试使用ProcessBuilder在Java中运行它。
简单回答可能是:在调用java时使用 -jar 。
java someJar.jar
不起作用!
是的,这个斜线很重要。您只需要一个完全正确的文件路径。
最后:你真的确定要启动新的JVM以便在某个类中运行main方法吗?你知道,你可以在当前的JVM中做到这一点 - 没有使用第二个JVM的额外性能和复杂性成本!