我有一个install4j(v4.x)项目,它在应用程序安装时创建了2个不同的启动程序(用于2个不同的任务)。有没有办法为第二个启动器指定一个单独的(第二个)JRE(不是最终媒体文件中指定的那个)?
有点偏离主题但......
为什么我需要那个?实际上我需要第二个启动器(这是一个更新程序类型的应用程序)的媒体文件中的JRE的完整副本,以便它可以更新主应用程序的JRE。如果updater与应用程序在同一个JRE上工作,则无法执行此操作。
也许有更好的方法来更新应用程序的JRE与我需要的那个?
P.S。我知道install4j 5.x的新更新功能,但由于几个原因我们没有使用它,所以现在它已经不存在了。
答案 0 :(得分:1)
这个怎么样:
在常规设置 - > Java版本中添加环境变量MY_UPDATER_JAVA_HOME
到搜索序列并将其移动到列表顶部。
在安装程序中,使用“复制文件和目录”操作将JRE复制到其他目录
On Installer-> Screens&操作,添加一个空的自定义安装程序应用程序,将其“默认执行模式”属性设置为“无人参与模式”
将“运行可执行文件或批处理文件”操作添加到新安装程序应用程序的“启动”节点。通过该操作,您可以调用更新程序启动器。在“特定环境变量”属性中,将MY_UPDATER_JAVA_HOME
设置为复制的JRE的位置。
然后,您将直接调用安装程序应用程序而不是您的更新程序,它将与重复的JRE一起运行。
如果您不想在安装目录中保留两个JRE,可以将“默认执行模式”属性更改为“具有进度对话框的无人参与模式”并添加“复制文件和目录”操作以复制JRE到temp目录中的特定目录(如果它尚不存在)。