1

我有一个 install4j (v4.x) 项目,该项目在应用程序安装时创建了 2 个不同的启动器(用于 2 个不同的任务)。有没有办法为第二个启动器(不是最终媒体文件中指定的那个)指定一个单独的(第二个)JRE?

有点跑题了,但是...

为什么我需要那个?实际上,我需要第二个启动器(这是一个更新程序类型的应用程序)的媒体文件中的 JRE 的完整副本,以便它可以更新主应用程序的 JRE。如果更新程序可以在与应用程序相同的 JRE 上工作,它就无法这样做。

也许有一种更好的方法来用我需要的更新应用程序的 JRE?

PS 我知道 install4j 5.x 的新更新功能,但由于几个原因我们没有使用它,所以现在没有问题。

4

1 回答 1

1

这个怎么样:

  • 在常规设置->Java 版本中,您将环境变量添加MY_UPDATER_JAVA_HOME 到搜索序列并将其移至列表顶部。

  • 在安装程序中,使用“复制文件和目录”操作将 JRE 复制到其他目录

  • 在 Installer->Screens & Actions 上,添加一个空的自定义安装程序应用程序,将其“默认执行模式”属性设置为“无人参与模式”

  • 将“运行可执行文件或批处理文件”操作添加到新安装程序应用程序的“启动”节点。通过该操作,您可以调用更新程序启动器。在“特定环境变量”属性中,您设置MY_UPDATER_JAVA_HOME为复制的 JRE 的位置。

然后,您将直接调用安装程序应用程序而不是您的更新程序,它将使用复制的 JRE 运行。

如果您不想在安装目录中保留两个 JRE,可以将“默认执行模式”属性更改为“带有进度对话框的无人参与模式”并添加“复制文件和目录”操作以将 JRE 复制到特定的如果临时目录中的目录尚不存在。

于 2012-10-18T07:54:18.430 回答