java.lang.UnsupportedClassVersionError - JDK 和 JRE 的不同版本
java.lang.UnsupportedClassVersionError - different versions of JDK and JRE
当我尝试编译我的 class(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.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)
您应该如下设置 JAVA_HOME
环境变量:
JAVA_HOME=D:\jdk-12.0.1
然后将以下部分添加到 PATH
环境变量值的 beginning 中:
$JAVA_HOME/bin;
这确保了此 JDK 版本将被用于程序的编译和运行时执行。
您需要使用相同版本的 JDK 和 JRE。
例如:-
问题
JDK 版本 14,JRE 版本 8
就是这个问题。
修正:-
确保你有相同版本的 JRE 和 JDK.
第一步:
打开命令
运行 这些命令“javac -version”不带引号。
然后是“java -版本”
第二步:
如果您有不同版本的 JDK 和 JRE。卸载 JRE。
确保只保留一个 JDK.
第三步:
转到环境变量。
设置您的 JDK.
的路径
例如:-
JAVA_HOME : C:\程序 Files\Java\jdk-14.0.1
Take a look at this screenshot
注意:- JDK 包括相同版本的 JDK 和 JRE。只需从 oracle.com 下载 JDK。
当我尝试编译我的 class(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.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)
您应该如下设置 JAVA_HOME
环境变量:
JAVA_HOME=D:\jdk-12.0.1
然后将以下部分添加到 PATH
环境变量值的 beginning 中:
$JAVA_HOME/bin;
这确保了此 JDK 版本将被用于程序的编译和运行时执行。
您需要使用相同版本的 JDK 和 JRE。
例如:- 问题 JDK 版本 14,JRE 版本 8 就是这个问题。
修正:- 确保你有相同版本的 JRE 和 JDK.
第一步: 打开命令 运行 这些命令“javac -version”不带引号。 然后是“java -版本”
第二步: 如果您有不同版本的 JDK 和 JRE。卸载 JRE。 确保只保留一个 JDK.
第三步: 转到环境变量。
设置您的 JDK.
的路径例如:- JAVA_HOME : C:\程序 Files\Java\jdk-14.0.1
Take a look at this screenshot
注意:- JDK 包括相同版本的 JDK 和 JRE。只需从 oracle.com 下载 JDK。