java - 无法使用 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 click
从java -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();
}
什么都没有发生,我什至没有收到错误。
怎么了?
解决方案
你应该使用Runtime.exec()
Process process = Runtime.exec("java -jar " + filepath);
if (process.waitFor() == 0) {
System.out.println("process ran without errors");
}
推荐阅读
- typescript - TypeScript 如何检测始终到达或无法到达的代码块?
- java - 如何将字段标记为持久但未序列化?
- php - gRPC 一元调用中的“start_batch 调用不正确”
- postgresql - 如何让 PostgreSQL 接受文本作为枚举值
- excel - 使用 VBA 将 Excel 范围转换为 Outlook 正文 - 需要帮助才能添加默认签名
- python - 当我按下按键时,为什么我的精灵在 pygame 中没有移动?
- go - 如何将我的 AWS EC2 密钥对 PEM 文件加载到我的 terratest 脚本以执行 AWS EC2 SSH 连接验证
- permissions - 有没有办法为 Deno 中的子目录授予读取权限?
- r - 如何在 openxlsx 中合并工作簿
- logging - 如何在应用程序(K8S 部署)中为 fluentd 源类型格式设置标签