我需要用 JDK 13.0.2 编译什么版本的 JRE?

What version of JRE I need to compile with JDK 13.0.2?

我正在想办法用 Java 将“Hello World”打印到我的电脑中。

最主要的是当我编译代码的时候,当我想运行它出现的时候:

图像: Click to see the image

实际代码错误:

`C:\Users\Pedro\Documents\java>java Myfirst
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Myfirst has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access0(Unknown Source)
        at java.net.URLClassLoader.run(Unknown Source)
        at java.net.URLClassLoader.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

C:\Users\Pedro\Documents\java>`

所以,我发现问题出在 JRE(Java 运行时环境)。

我的Java版本:

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode, sharing)

我的Javac版本:

javac 13.0.2

为了解决这个问题,我想知道:

  1. 我需要什么版本的 JRE 才能成功编译我的程序?
  2. 如果项目 N°1 不是问题,我该如何解决?

为什么 JDK 和 JRE 有不同的版本?这看起来很奇怪。

我会这样做:
1) 卸载所有 JDK 和 JRE。
2) 安装 JDK 8 并在安装过程中告诉
安装程序不安装独立的 JRE,
浏览器插件或类似的东西。只是 JDK。

这是我避免麻烦的一般建议。
这样,您将只有一个 JDK,它还提供一个 JRE
(那么 JRE java 将与编译器 javac 的版本相同。

关于你的问题:

A) 运行 使用与您遵守的 JDK 版本相同的 JRE 版本 (13.0.2)。

B) 或者在编译时指定 java -source 1.8 MySourceFile.java
然后您将能够 运行 使用 JRE 1.8

但在玩 A) 和 B) 之前,请先遵循一般建议。

您必须重新安装 java 使用 link 下载:

Download java with Netbeans here!

只需从控制面板中完全卸载 java 确保卸载其所有组件并安装下载的文件,所有软件包都位于一个位置。

从 Java11 开始,JRE 不再存在。您只需要安装 JDK 并正确设置 bin 文件夹的路径即可。

你需要做的就是在环境变量PATH中设置JDK 13.0.2bin文件夹的路径,并将此条目移至顶部。我还建议您对 User 变量和 System 变量都这样做。

这之后需要新开一个cmdwindow然后再检查一下版本。现在,你会看到 java -version returns JDK 13.0.2.

现在,编译程序并 运行 它 - 或者 - 从 Java 11 开始简单地做 java Myfirst.java,你可以 运行 a java文件(前提是文件中最上面的 class 有 main)而不编译。