如何从 Java 应用程序指定更新程序目录?
How to specify the updater directory from a Java application?
我正在尝试使用不带版本检查的更新程序来关闭调用启动器。我在我的代码中包含以下内容以启动更新程序:
ApplicationLauncher.launchApplication("368", null, false, null);
我在执行此行时遇到错误,找不到 i4jparams.conf
文件。它显然是在与启动器相同的目录中查找文件,但该文件实际上位于 .install4j(默认)子目录中。更新应用程序也在这个目录中。
当我直接调用更新程序时它正在工作:
Process process = new ProcessBuilder(".\.install4j\updater.exe").start();
不幸的是,这种方法不允许更新程序在忙于安装新应用程序时关闭调用启动器。
我显然需要告诉 ApplicationLauncher.launchApplication
在 .launch4j
目录中查找更新程序,但我不确定该怎么做。
It is obviously looking for the file in the same directory as the launcher`
不,事实并非如此。实际机制是使用带有运行时 类 的 JAR 文件所在的目录。如果您自己将 i4jruntime.jar
放入类路径,则它可能使用了错误的目录。
如果您想从 GUI 中排除 Install4j 运行时库,我是这样做的:
我正在尝试使用不带版本检查的更新程序来关闭调用启动器。我在我的代码中包含以下内容以启动更新程序:
ApplicationLauncher.launchApplication("368", null, false, null);
我在执行此行时遇到错误,找不到 i4jparams.conf
文件。它显然是在与启动器相同的目录中查找文件,但该文件实际上位于 .install4j(默认)子目录中。更新应用程序也在这个目录中。
当我直接调用更新程序时它正在工作:
Process process = new ProcessBuilder(".\.install4j\updater.exe").start();
不幸的是,这种方法不允许更新程序在忙于安装新应用程序时关闭调用启动器。
我显然需要告诉 ApplicationLauncher.launchApplication
在 .launch4j
目录中查找更新程序,但我不确定该怎么做。
It is obviously looking for the file in the same directory as the launcher`
不,事实并非如此。实际机制是使用带有运行时 类 的 JAR 文件所在的目录。如果您自己将 i4jruntime.jar
放入类路径,则它可能使用了错误的目录。
如果您想从 GUI 中排除 Install4j 运行时库,我是这样做的: