安装4j Java最小版本似乎无法正常工作

7
我们使用的是Install4j 7.0.6,并将Java最低版本设置为"10.0.1"。 我们将Java 10.0.1打包到媒体文件中。 当我们用Java 9替换了包含的JVM时,应用程序仍然可以启动。 我们是否误解了Java最低版本的功能,或者使用了错误的版本格式,或者在Install4j 7.0.6中存在问题?
2个回答

2
最初的回答:无论最低版本如何,捆绑的JRE始终会被使用。最低版本适用于由搜索序列检查的已安装JRE。

好的,知道了,谢谢。 但是有没有办法确保安装后没有人更换捆绑的JRE? - Gregor G.
在安装程序中,您可以在JRE目录中编写一个标记文件,并在启动时进行检查。 - Ingo Kegel
有没有办法确保只使用捆绑的JRE,当有人删除捆绑的JRE时,程序就无法启动? - Gregor G.
您可以在“常规设置->Java版本”步骤中删除JRE搜索序列中的所有元素。 - Ingo Kegel

1
据我所知,最低Java版本参数的目的是告诉Install4j编译脚本使用的Java编译器应该是哪个Java目标级别。手册中包括一个警告,不要包含低于目标级别的嵌入式JRE,因为那可能会导致运行时错误。这个警告的暗示是Install4j并没有检查这一点。以下是手册的内容:
“设计时JDK用于以下目的: - 代码编译:install4j使用捆绑的eclipse编译器,因此不需要从JDK获取此功能。但它需要一个运行时库,对其进行编译安装程序配置中输入的脚本。该JDK的版本应与项目的最低Java版本相对应。如果该最低Java版本低于设计时JDK的版本,则如果您意外使用了更新的类和方法,可能会发生运行时错误。”

Install4j可能没有可靠的方法来检查您提供的用于嵌入的JRE版本。无论如何,手册暗示这不会被检查。


我们说的是同一个版本吗? 我指的是通用设置>Java版本下的最低版本。 在Install4j IDE中,在此选项上方写着“请定义应用程序启动时所需的JRE版本要求”,这对我来说意味着它应该在启动时检查JRE版本。 - Gregor G.
我不确定。实际上我没有安装Install4j的副本来测试。 - Stephen C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接