java - 使用 Java 执行 jar 文件只能在 pc 到 pc 的基础上工作
问题描述
我正在尝试为 Java 应用程序创建一个启动器,它将自动更新/下载计算机用户主区域中的 jar 文件,然后继续执行它。
我尝试使用 Process 和 Runtime 类来运行 jar 文件,我在自己的电脑上只取得了成功,但似乎 1:10 尝试这个分布式软件(也是 jar 形式)的人可以' 似乎没有要运行的 jar 文件(作为参考,我已确保所有测试此应用程序的人都安装了最新版本的 Java)。
负责运行jar文件的代码如下:
public static void startApplication() {
try {
Process proc = Runtime.getRuntime().exec("java -jar "+(saveDirectory + fileName));
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
我希望 jar 文件 fileName 在位置 saveDirectory 中打开,但是在 pc 到 pc 场景中并非总是如此。我只是想知道是否有更好的方法可以确保 100% 的成功。
解决方案
如果user.home
包含空格,这可能无法正常工作,因为该命令是按原样评估的,因为它被提供为String
. 使用Runtime.exec(String[])
版本:
Runtime.getRuntime().exec(new String[] { "java", "-jar", saveDirectory + fileName });
此外,您可能希望规范化 JAR 路径:
Path path = Paths.get(saveDirectory, fileName);
String fullPath = path.normalize().toAbsolutePath().toString();
Runtime.getRuntime().exec(new String[] { "java", "-jar", fullPath });
推荐阅读
- .htaccess - Htaccess 导致子域 '404 not found' 错误
- ios - 如何在 swift 中将 JSON `null` 值传递给`nil` 值?
- git - 当我只提交小的更改时,为什么 git 会压缩和写入所有项目文件?
- android - 如何将位图转换为 RoundRect 位图?
- asp.net-mvc - 如何将未经授权的用户重定向到登录页面
- c++ - 如何在 netpbm 图像中绘制平滑像素?
- html - 上传 WordPress 静态 HTML 站点后在 GitHub 上显示 404 错误
- swift - 我如何禁用在 ipad 中的 iphone 中工作的按钮,因为 ipad 具有这些功能
- python - 如何从上面的目录导入包/模块
- php - 如何从网页 url 读取数据并仅将一部分(唯一)回显到页面?