已由更新版本的 Java Runtime(类文件版本 57.0)编译

新手上路,请多包涵

我使用 IntelliJ 遇到了这个问题。但是我的系统上新安装了最新版本的所有内容。

… 已由 Java 运行时的更新版本(类文件版本 57.0)编译,此版本的 Java 运行时仅识别高达 52.0 的类文件版本

我已经设置:

路径为 C:\Program Files\Java\jdk-13 JAVA_HOME 为:C:\Program Files\Java\jdk-13 JRE_HOME 为:C:\Program Files\Java\jre1.8.0_221

我已经设置了路径,试图找到项目结构的变化

完整的错误信息:

 H:\087-JAVA\HelloWorld\src>java com.codewithmosh.Main
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/codewithmosh/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)

原文由 nobism 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
1 个回答

您需要仔细检查 PATH 环境设置。 C:\Program Files\Java\jdk-13 你目前有 那里不正确。请确保在 PATH 列表的顶部有最新 JDK 版本的 bin 子目录。

java.exe 可执行文件位于 C:\Program Files\Java\jdk-13\bin 目录中,因此这就是你需要在 PATH 中拥有的内容。

使用 此工具 可以快速验证或编辑 Windows 上的环境变量。它允许重新排序 PATH 条目。它还会以红色突出显示无效路径。

如果您希望您的代码也能在较低的 JDK 版本上运行,请在 IDE 中更改目标字节码版本。请参阅 此答案 以获取相关屏幕截图。

另请参阅 此答案 了解 Java 类文件版本。发生的情况是,您使用 Java 13 和 13 语言级字节码(目标)构建代码,并尝试使用 Java 8 运行它,这是根据 PATH 变量配置的第一个(默认)Java 版本。

The solution is to have Java 13 bin directory in PATH or above instead of Java 8. On Windows you may have C:\Program Files (x86)\Common Files\Oracle\Java\javapath added to PATH 现在自动指向 Java 8:

java路径

如果是这种情况,请从 PATH 中删除突出显示的部分,然后注销/登录或重新启动以使更改生效。您需要先 以管理员 身份重新启动才能编辑系统变量(请参阅系统变量列右上角的按钮)。

在此处输入图像描述

原文由 CrazyCoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏