java.lang.UnsupportedClassVersionError-JDK和JRE的不同版本

时间:2019-07-19 11:18:56

标签: java javac

当我尝试编译我的类(hello.java)时-没关系-没问题,但是当我尝试运行hello.class时-我遇到了麻烦 我的Java版本1.8.0_211 我的javac版本12.0.1 我已经安装了JDK 12 如何解决?

我的JDK路径:D:\ jdk-12.0.1 \ bin

C:\Users\Vasyl\Desktop>javac hello.java

C:\Users\Vasyl\Desktop>java hello
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: hello has been compiled by a more recent version of the Java Runtime (class file version 56.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)

2 个答案:

答案 0 :(得分:1)

您应如下设置JAVA_HOME环境变量:

JAVA_HOME=D:\jdk-12.0.1

,然后将以下部分添加到您的PATH环境变量的值的开始

$JAVA_HOME/bin;

这可以确保在编译和运行时执行程序时都可以使用此JDK版本。

答案 1 :(得分:0)

您需要使用相同版本的JDK和JRE。

例如:- 问题 JDK版本14,JRE版本8 这是问题。

修复:- 确保您具有相同版本的JRE和JDK。

第一步: 开放式CMD 在不带引号的情况下运行这些命令“ javac -version”。 然后是“ java -version”

步骤2: 如果您有不同版本的JDK和JRE。卸载JRE。 确保仅保留一个JDK。

Step3: 转到环境变量。

设置JDK的路径。

EX:- JAVA_HOME:C:\ Program Files \ Java \ jdk-14.0.1

Take a look at this screenshot

注意:-JDK包含相同版本的JDK和JRE。只需从oracle.com下载JDK。