【发布时间】:2014-12-04 09:58:01
【问题描述】:
我目前遇到以下问题:
我有两个 java 应用程序:updater 和 client。更新程序是一个原生应用程序(其中包含必要的 JDK),而客户端只是一个可运行的 jar 文件。
当用户启动应用程序时,它基本上会启动更新程序,它会在服务器上搜索客户端应用程序的更新。当存在新更新时,更新程序会下载更新并将其放入文件中(或覆盖当前的 jar 文件)。然后,我像这样执行下载的 .jar 文件:
private void startApplication() {
Runtime rt = Runtime.getRuntime();
try {
Process pr = rt.exec("java -jar libs/myJar.jar");
} catch (IOException e) {
e.printStackTrace();
}
}
这在 Eclipse 中构建和运行时工作正常,但是当我运行本机应用程序(由 Eclipse 构建)时 myJar.jar 没有被执行。我认为这是由于更新程序找不到jar文件,因为它的绝对路径变得不同。
我的问题:如何确保本机应用程序可以执行下载的 jar 文件?
注意:我目前正在 Mac OSX 上构建应用程序,因此我正在使用 .dmg 对其进行测试。我不知道 Windows 或 Linux 是否也存在此问题。
编辑 1: 路径似乎没有问题,因为这似乎很好(经@Funtik 测试,谢谢)。
编辑 2: 文件权限似乎也正确。也许这与客户端 jar 不知道要使用哪个 JVM 的事实有关?
【问题讨论】:
标签: java eclipse jar nativeapplication