【问题标题】:ProcessBuilder: Start .jar in java packageProcessBuilder:在java包中启动.jar
【发布时间】:2023-03-16 07:52:01
【问题描述】:

我尝试在我的 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();

【问题讨论】:

  • 请注意,我增强了我的回答。如果有帮助,请提供一些反馈!

标签: java jar package processbuilder getresource


【解决方案1】:

首先让你的命令工作......只需在命令行上。

然后才尝试使用 ProcessBuilder 从 Java 中运行它。

简单的答案可能是:调用java时使用-jar

java someJar.jar

不起作用!

是的,这个斜线很重要。您只需要一个完全正确的文件路径。

最后:你确定要启动一个新的 JVM 以便在某个类中运行 main 方法吗?你看,你可以在你当前的 JVM 中做到这一点 - 没有使用第二个 JVM 的额外性能和复杂性成本!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多