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.

我不想承认我在这上面花了多少时间。