java - (Windows) 为什么我在使用最新的 Java 和 JDK 时会收到 UnsupportedClassVersionError 错误?

标签 java command-line unsupported-class-version

我试图在命令提示符下运行一个程序,一切都很顺利,直到我实际尝试在编译的类上使用 java 命令并收到以下错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main 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)    

我已确保我的 Java 运行时和 JDK 是最新的。我的 JDK 版本是 13.0.2,java -version 输出是

java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) Client VM (build 25.241-b07, mixed mode)

我查看了 Stack Overflow,但每个人似乎都使用了错误的版本,所以有人知道这里出了什么问题吗?

最佳答案

在我看来一切都很正常。我认为您已经使用 13 进行了编译,但您尝试使用 8 来执行(正如我在 Java 1.8 输出中看到的那样)。 您的默认 Java 是 8,因此如果您想使用 13,请尝试为 Java 命令指定完整路径

关于java - (Windows) 为什么我在使用最新的 Java 和 JDK 时会收到 UnsupportedClassVersionError 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139432/

相关文章:

java - hibernate 查询异常 : could not resolve property in spring petclinic sample application

java - 使用多个按钮创建弹出选项框

pdf - 在命令行上导出 PDF 页面标签

java - UnsupportedClassVersionError Java 错误

ubuntu - 解决Ubuntu上java和javac的版本冲突

java - 注解默认值 "null"

java - Java 中的子类不继承(或覆盖)私有(private)成员?

ubuntu - 使用带有正则表达式的 Sed 进行子字符串替换

command-line - 我如何在大多数目录上执行代码,但带有批处理文件的文件中列出的目录除外?

java - 不支持的 major.minor 版本 52.0