Java 无法使用Desktop.getDesktop()执行jar文件。打开(新文件(";C:/path/firefox.jar););当jar需要外部文件时
我有一个用selenium打开浏览器的项目。结构看起来像这样:Java 无法使用Desktop.getDesktop()执行jar文件。打开(新文件(";C:/path/firefox.jar););当jar需要外部文件时,java,jar,executable-jar,Java,Jar,Executable Jar,我有一个用selenium打开浏览器的项目。结构看起来像这样: myProyect src com.open OpenFirefox.java lib geckodriver geckodriver.exe 如果我制作了一个jar文件,我只能在jar与lib/geckodriver/geckodriver.exe位于同一位置时执行jar。控制台中的双击和java-jarfirefox.jar都可以工作 现在,我需要从另一个程序执行
myProyect
src
com.open
OpenFirefox.java
lib
geckodriver
geckodriver.exe
如果我制作了一个jar文件,我只能在jar与lib/geckodriver/geckodriver.exe
位于同一位置时执行jar。控制台中的双击
和java-jarfirefox.jar
都可以工作
现在,我需要从另一个程序执行这个jar。我已经用Desktop.getDesktop().open(文件)打开了其他没有依赖项的JAR代码>没有问题,但是当我尝试
try {
File file = new File("C:/Users/user/Desktop/firefox.jar");
Desktop.getDesktop().open(file);
} catch (Exception e) {
e.printStackTrace();
}
什么也没发生,我甚至没有出错
发生了什么事?您应该使用
你确定这个jar配置了入口点吗?我只是右键单击/export/runnable jar file/finish。我需要配置其他东西吗?它有主方法吗?如果是这样,这是在.jar文件的清单文件中配置的吗?如果没有,它就不是一个可执行的jar文件,而是一个库。我有一个main方法,清单文件中的main类就是一个main方法的类(我只有一个类)。你在使用外部库吗?
Process process = Runtime.exec("java -jar " + filepath);
if (process.waitFor() == 0) {
System.out.println("process ran without errors");
}