Java System.getProperty("java.runtime.version") 报告不正确
Java System.getProperty("java.runtime.version") not reporting correctly
我是运行一个程序,使用:
System.out.println("Java Virtual Machine implementation version : " +
System.getProperty("java.vm.version"));
System.out.println("Java runtime version: " +
System.getProperty("java.runtime.version" ));
这是使用 java 11.0.12+7 编译的。我是 运行 它与 JDK oracle64-1.8.0.192:
PWRMacbookPro:~ username$ java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
PWRMacbookPro:~ username$
首先,我希望程序是用更高版本编译的……但相反,我得到:
Java Virtual Machine implementation version : 11.0.12+7
Java runtime version: 11.0.12+7
我的 java 环境一定是搞砸了吗?我是 运行 mac os x 并使用 jenv 在 java 的不同版本之间切换。这一切在安装 Azul 11.0.12+7 之前都有效。我卸载了 Azul 并返回到 AdoptOpenJDK 11.0.12+7。我搞砸了什么?
编辑:
现在,我很迷茫。我回到安装 Azul 之前,一切都一样。我有一个用 java 11 编译的 jar。我现在将 运行 JVM 切换到 1.8 并执行我的 jar。我期望并认为我过去得到过,“jar 是使用 JDK 的更高版本编译的”,或类似的消息。我没有,它运行完美。我错过了什么?
这些不是完整的时间属性,在 运行 时间读取。这就是为什么您获得用于 运行 程序
的 JVM 版本的原因
我为此绞尽脑汁却一无所获。我有两个 java 程序,我在 MAC OS X 系统上将它们变成了 .app 包。今天,我尝试 运行 在我的 Windows 10 系统上使用 JDK 1.8 安装 11 版本。它失败了,因为我认为它应该。我突然意识到,在 Windows 上,我将它们作为 jar 执行。我在 Mac OS X 上尝试了相同的方法(即 运行 罐子)。它失败了。我的应用程序包中的启动脚本查找系统上的最高级别 JDK,而不是当前活动的 JDK.
我不想承认我在这上面花了多少时间。
我是运行一个程序,使用:
System.out.println("Java Virtual Machine implementation version : " +
System.getProperty("java.vm.version"));
System.out.println("Java runtime version: " +
System.getProperty("java.runtime.version" ));
这是使用 java 11.0.12+7 编译的。我是 运行 它与 JDK oracle64-1.8.0.192:
PWRMacbookPro:~ username$ java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
PWRMacbookPro:~ username$
首先,我希望程序是用更高版本编译的……但相反,我得到:
Java Virtual Machine implementation version : 11.0.12+7
Java runtime version: 11.0.12+7
我的 java 环境一定是搞砸了吗?我是 运行 mac os x 并使用 jenv 在 java 的不同版本之间切换。这一切在安装 Azul 11.0.12+7 之前都有效。我卸载了 Azul 并返回到 AdoptOpenJDK 11.0.12+7。我搞砸了什么?
编辑:
现在,我很迷茫。我回到安装 Azul 之前,一切都一样。我有一个用 java 11 编译的 jar。我现在将 运行 JVM 切换到 1.8 并执行我的 jar。我期望并认为我过去得到过,“jar 是使用 JDK 的更高版本编译的”,或类似的消息。我没有,它运行完美。我错过了什么?
这些不是完整的时间属性,在 运行 时间读取。这就是为什么您获得用于 运行 程序
的 JVM 版本的原因我为此绞尽脑汁却一无所获。我有两个 java 程序,我在 MAC OS X 系统上将它们变成了 .app 包。今天,我尝试 运行 在我的 Windows 10 系统上使用 JDK 1.8 安装 11 版本。它失败了,因为我认为它应该。我突然意识到,在 Windows 上,我将它们作为 jar 执行。我在 Mac OS X 上尝试了相同的方法(即 运行 罐子)。它失败了。我的应用程序包中的启动脚本查找系统上的最高级别 JDK,而不是当前活动的 JDK.
我不想承认我在这上面花了多少时间。