首页 > 解决方案 > 无法使用 Desktop.getDesktop().open(new File("C:/path/firefox.jar");) 执行 jar 文件;当 jar 需要外部文件时

问题描述

我有一个用硒打开浏览器的项目。结构看起来像这样:

myProyect
   src
     com.open
        OpenFirefox.java
   lib
     geckodriver
        geckodriver.exe

如果我为此制作一个 jar 文件,我只能在 jar 与 .jar 位于同一位置时执行该 jar lib/geckodriver/geckodriver.exe。并且两者都可以double clickjava -jar firefox.jar控制台工作。

现在,我需要从另一个程序执行这个 jar。我一直在打开其他没有依赖关系的罐子Desktop.getDesktop().open(file);没有问题,但是当我尝试

try {
    File file = new File("C:/Users/user/Desktop/firefox.jar");                  
    Desktop.getDesktop().open(file);
} catch (Exception e) {
    e.printStackTrace();
}

什么都没有发生,我什至没有收到错误。

怎么了?

标签: javajarexecutable-jar

解决方案


你应该使用Runtime.exec()

Process process = Runtime.exec("java -jar " + filepath);
if (process.waitFor() == 0) {
    System.out.println("process ran without errors");
}

推荐阅读