【问题标题】:What version of JRE I need to compile with JDK 13.0.2?我需要用 JDK 13.0.2 编译什么版本的 JRE?
【发布时间】:2020-05-14 21:26:57
【问题描述】:

我正在弄清楚我必须做什么才能使用 Java 将“Hello World”打印到我的 PC 中。

主要是当我编译代码时,当我想运行它时:

图片: 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.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.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. 如果第 1 项不是问题,我该如何解决?

【问题讨论】:

    标签: java jvm javac


    【解决方案1】:

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

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

    之后,您需要打开一个新的cmd 窗口,然后再次检查版本。现在,您将看到java -version 返回JDK 13.0.2

    现在,编译并运行程序 - 或者 - 从 Java 11 开始,只需执行 java Myfirst.java 即可,无需编译即可运行 java 文件(前提是文件中最顶层的类有 main)。

    【讨论】:

      【解决方案2】:

      为什么会有不同版本的 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) 之前,请先遵循一般建议。

      【讨论】:

      • 谢谢彼得,问题出在 JRE
      【解决方案3】:

      你必须重新安装java使用链接下载:

      Download java with Netbeans here!

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

      【讨论】:

      • 谢谢,问题出在 JRE 上。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多