java - 已由更新版本的 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)
解决方案
您需要仔细检查PATH
环境设置。C:\Program Files\Java\jdk-13
你目前有不正确的。请确保您在列表bin
顶部拥有最新 JDK 版本的子目录。PATH
java.exe
可执行文件在C:\Program Files\Java\jdk-13\bin
目录中,所以这就是您需要在PATH
.
使用此工具可以快速验证或编辑 Windows 上的环境变量。它允许重新排序PATH
条目。它还将以红色突出显示无效路径。
如果您还希望代码在较低的 JDK 版本上运行,请在 IDE 中更改目标字节码版本。有关相关屏幕截图,请参阅此答案。
另请参阅此答案以了解 Java 类文件版本。发生的情况是,您使用 Java 13 和 13 语言级字节码(目标)构建代码,并尝试使用 Java 8 运行它,这是根据PATH
变量配置的第一个(默认)Java 版本。
解决方案是在上面使用 Java 13bin
目录PATH
或代替 Java 8。在 Windows 上,您可能已经自动C:\Program Files (x86)\Common Files\Oracle\Java\javapath
添加了PATH
指向 Java 8 的目录:
如果是这种情况,请从中删除突出显示的部分PATH
,然后注销/登录或重新启动以使更改生效。您需要首先以管理员身份重新启动才能编辑系统变量(请参见系统变量列右上角的按钮)。
推荐阅读
- powershell - PowerShell 中的 IoT 中心共享访问签名
- python - Python rq为添加到队列的每个请求加载烧瓶应用程序
- javascript - 通过 HTML / JS 居中图像
- css - CSS 溢出:自动在 ios 和 safari 上搞砸了
- python - 使用scrapy提取h2标签下的所有文本
- mysql - 从联合表中一次获取一条记录
- python - Python 套接字突然收到不同的 fernet 密钥
- javascript - 去掉 gatsbyjs 中的链接下划线
- node.js - msg.content 未定义
- angular - Angular 9:间谍等待功能(单元测试)