【发布时间】:2019-08-15 14:14:19
【问题描述】:
我们正在使用 Install4j 7.0.6 并将 Java 最低版本设置为“10.0.1”。 我们将 Java 10.0.1 捆绑到媒体文件中。 当我们用 Java 9 VM 替换包含的 JVM 时,我们的应用程序仍然启动。 我们只是误解了 Java 最低版本的功能,还是我们使用了错误的版本格式,或者它在 Install4j 7.0.6 中被破坏了?
【问题讨论】:
我们正在使用 Install4j 7.0.6 并将 Java 最低版本设置为“10.0.1”。 我们将 Java 10.0.1 捆绑到媒体文件中。 当我们用 Java 9 VM 替换包含的 JVM 时,我们的应用程序仍然启动。 我们只是误解了 Java 最低版本的功能,还是我们使用了错误的版本格式,或者它在 Install4j 7.0.6 中被破坏了?
【问题讨论】:
无论最低版本如何,都将始终使用捆绑的 JRE。最小值适用于由搜索序列检查的已安装 JRE。
【讨论】:
据我所知,最小 Java 版本参数的目的是告诉 Java 编译器 Install4j 用来编译脚本的 Java 目标级别应该是什么。
该手册包含一个警告,即您不应包含低于目标级别的嵌入式 JRE,因为这可能会导致运行时错误。该警告的含义是 Install4j 不检查这个。
the manual 是这样说的:
设计时 JDK 用于以下目的:
代码编译:install4j 使用捆绑的 eclipse 编译器,因此它不需要 JDK 的这个功能。但是,它需要一个运行时库,在安装程序配置中输入的脚本会根据该运行时库进行编译。该 JDK 的版本应对应于项目的最低 Java 版本。如果该最低 Java 版本低于设计时 JDK 的版本,则如果您不小心使用了较新的类和方法,可能会发生运行时错误。
...
Install4j 可能没有可靠的方法来检查您为嵌入提供的 JRE 的版本。无论如何,手册暗示这没有被检查。
【讨论】: