从本机 Java 应用程序启动可运行的运行



我目前有以下问题:

我有两个Java应用程序:更新程序客户端。更新程序是一个本机应用程序(包含必要的 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有关?

为此,您必须使用绝对路径。

 String path = new File(".").getAbsolutePath();
 Process pr = rt.exec("java -jar "+ path + "/libs/myJar.jar");

相关内容

  • 没有找到相关文章

最新更新