在Install4J中,是否可以更新sys.preferredJRE变量?

在Install4J中,是否可以更新sys.preferredJRE变量?,install4j,Install4j,我有一个安装程序,其目的是为现有安装更新JDK的最大版本(我们需要JDK,而不是JRE),并将现有安装指向使用JDK的更高版本(用户预安装且用户指定)运行 在安装程序中,我有从目录选择器表单组件调用JVM.setPreferredJVM()的代码。根据for JVMSelector的说法,该方法将“为您的应用程序设置首选JRE/JDK。”根据on变量(sys.preferredJRE),“只有在“安装文件”操作运行之后,才会设置此变量。” 当我运行安装程序时,我看到setPreferredJVM

我有一个安装程序,其目的是为现有安装更新JDK的最大版本(我们需要JDK,而不是JRE),并将现有安装指向使用JDK的更高版本(用户预安装且用户指定)运行

在安装程序中,我有从目录选择器表单组件调用JVM.setPreferredJVM()的代码。根据for JVMSelector的说法,该方法将“为您的应用程序设置首选JRE/JDK。”根据on变量(sys.preferredJRE),“只有在“安装文件”操作运行之后,才会设置此变量。”

当我运行安装程序时,我看到setPreferredJVM()方法被调用,但是sys.preferredJRE没有设置为我想要的,它仍然引用旧的JVM。这是一个问题,因为我随后的“添加VM选项”步骤使用sys.preferredJRE变量


我希望调用JVMSelector.setPreferredJVM()会更新sys.preferredJRE,但事实并非如此。我如何才能做到这一点,以便用户可以在安装过程中设置首选的JVM/JDK

这是一个bug,将在6.0.2中修复。请联系support@ej-在代码中,我将所需的JDK放入一个名为jdkPath的自定义变量中。然后在安装文件步骤之后,我加入了一个set变量操作,脚本为context.getVariable(“jdkPath”),变量名为sys.preferredJre。这会更新sys.preferredJre。但是,对于JVM.setPreferredJVM()方法实际上在做什么,仍然感到困惑。有什么用吗?可以,谢谢!我还看到pref_jre.cfg没有使用用户选择的JDK进行更新,而是将尝试通过“修改文本文件”操作来解决这个问题。您是否希望此错误修复也会修改pref_jre.cfg,或者我应该继续执行此操作?如果在“安装文件”操作运行后调用JVMSelector.setPreferredJVM(),则应更新pref_jre.cfg