【发布时间】:2015-02-02 16:49:49
【问题描述】:
我有一个安装程序,其目的是为现有安装更新 JDK 的最大版本(我们需要 JDK,而不是 JRE),并将现有安装指向与更高版本的 JDK(这是用户预安装和用户指定)。
在安装程序中,我有从目录选择器表单组件调用 JVM.setPreferredJVM() 的代码。根据 JVMSelector 的the API,它说此方法将“为您的应用程序设置首选的 JRE/JDK”。根据变量 (sys.preferredJRE) 上的help docs,“只有在“安装文件”操作运行后才会设置此变量。”
当我运行安装程序时,我看到调用了 setPreferredJVM() 方法,但是 sys.preferredJRE 没有设置为我想要的,它仍然引用旧的 JVM。这是一个问题,因为我随后的“添加 VM 选项”步骤使用了 sys.preferredJRE 变量。
我预计调用 JVMSelector.setPreferredJVM() 会更新 sys.preferredJRE,但事实并非如此。我怎样才能做到这一点,以便用户可以在安装过程中设置首选的 JVM/JDK?
【问题讨论】:
-
在代码中,我将所需的 JDK 放入名为 jdkPath 的自定义变量中。然后在安装文件步骤之后,我放入了一个设置变量操作,脚本为 context.getVariable("jdkPath") 和变量名 sys.preferredJre。这确实更新了 sys.preferredJre。仍然对 JVM.setPreferredJVM() 方法实际上在做什么感到困惑。它有什么作用吗?
标签: install4j