我们使用的是Install4j 7.0.6,并将Java最低版本设置为"10.0.1"。 我们将Java 10.0.1打包到媒体文件中。 当我们用Java 9替换了包含的JVM时,应用程序仍然可以启动。 我们是否误解了Java最低版本的功能,或者使用了错误的版本格式,或者在Install4j 7.0.6中存在问题?
据我所知,最低Java版本参数的目的是告诉Install4j编译脚本使用的Java编译器应该是哪个Java目标级别。手册中包括一个警告,不要包含低于目标级别的嵌入式JRE,因为那可能会导致运行时错误。这个警告的暗示是Install4j并没有检查这一点。以下是手册的内容:“设计时JDK用于以下目的: - 代码编译:install4j使用捆绑的eclipse编译器,因此不需要从JDK获取此功能。但它需要一个运行时库,对其进行编译安装程序配置中输入的脚本。该JDK的版本应与项目的最低Java版本相对应。如果该最低Java版本低于设计时JDK的版本,则如果您意外使用了更新的类和方法,可能会发生运行时错误。” Install4j可能没有可靠的方法来检查您提供的用于嵌入的JRE版本。无论如何,手册暗示这不会被检查。