我使用IntelliJ遇到了这个问题。但是我拥有系统上新安装的所有产品的最新版本。
...已由Java Runtime的最新版本(类文件版本57.0)进行编译,此版本的Java Runtime仅可识别52.0以下的类文件版本。
我已经设置:
PATH作为C:\ Program Files \ Java \ jdk-13 JAVA_HOME为:C:\ Program Files \ Java \ jdk-13 JRE_HOME为:C:\ Program Files \ Java \ jre1.8.0_221
我已经设置了路径,试图在Project结构中找到更改
完整的错误消息:
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)
答案 0 :(得分:4)
当我安装Oracle的JRE并在研究后解决了这个问题时,我面临着同样的问题。
我移动了环境路径
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
下面的H:\Program Files\Java\jdk-13.0.1\bin
赞:
路径
H:\Program Files\Java\jdk-13.0.1\bin
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
OR
路径
%JAVA_HOME%
%JRE_HOME%
答案 1 :(得分:3)
您需要仔细检查PATH
环境设置。 C:\Program Files\Java\jdk-13
您当前所在的位置不正确。请确保您在bin
列表的顶部拥有PATH
子目录以获取最新的JDK版本。
java.exe
可执行文件位于C:\Program Files\Java\jdk-13\bin
目录中,因此您需要在PATH
中拥有这个文件。
使用this tool在Windows上快速验证或编辑环境变量。它允许对PATH
个条目进行重新排序。还将以红色突出显示无效路径。
如果您还希望代码在较低的JDK版本上运行,请在IDE中更改目标字节码版本。有关屏幕截图,请参见this answer。
有关Java类文件版本,另请参见this answer。发生的情况是,您使用Java 13和13语言级别的字节码(目标)构建代码,并尝试使用Java 8(根据PATH
变量配置,这是第一个(默认)Java版本)运行代码。
解决方案是在上面的bin
中放置Java 13 PATH
目录,或者代替Java8。在Windows上,您可能会自动将C:\Program Files (x86)\Common Files\Oracle\Java\javapath
添加到PATH
,该目录指向Java 8现在:
在这种情况下,请从PATH
中删除突出显示的部分,然后注销/登录或重新引导以使更改生效。您需要先以管理员身份重新启动,然后才能编辑系统变量(请参见系统变量列右上角的按钮)。
答案 2 :(得分:2)
我如何在 Eclipse 中解决它
答案 3 :(得分:1)
尝试运行某些Groovy脚本时,我在 IntelliJ 中遇到了类似的问题。 这是我解决的方法。
转到“项目结构”->“项目”->“项目语言级别”,然后选择“ SDK默认值”。所有项目模块都应使用相同的SDK。
答案 4 :(得分:1)
这是IntelliJ IDEA中的设置($JAVA_HOME
,语言级别设置为1.8):
File
> Settings
> Build, Execution, Deployment
> Gradle
> Gradle JVM
选择例如Project SDK (corretto-1.8)
(或任何其他兼容版本)。
然后删除build
目录并重新启动IDE。
答案 5 :(得分:1)
我最近将 IntelliJ 版本升级到 2020.3
时遇到了这个问题。我必须禁用插件来解决这个问题。插件的名称是 Thrift Support
。
禁用插件的步骤如下:
Command + ,
来实现。plugins
。Thrift Support
插件。单击复选框图标以取消选择它。有关详细信息,请参阅此链接 java.lang.UnsupportedClassVersionError 2020.3 version intellij。我在上面的链接中找到了这条评论,这对我有用。
<块引用>bin zhao 评论 2020 年 12 月 31 日 08:00 @Lejia Chen @Tobias Schulmann 工作流程 我的 IDEA3.X 没有安装 Erlang 插件,我禁用了 Thrift Support 1.4.0 并且它起作用了。 IDEA 3.0 和 3.1 都有同样的问题。
答案 6 :(得分:0)
我也遇到了类似的问题here。问题是某些应用程序带有自己的JRE,有时安装的JDK在环境路径中的优先级较低。现在有两个选项:
我也删除了@CrazyCoder建议的路径
答案 7 :(得分:0)
问题是您使用Java 13(类文件57)编译了代码,而Java运行时设置为Java 8(类文件52)。
假设本地系统中有JRE 13 installed,则可以将运行时间从52更改为57。 您可以使用插件选择运行时进行操作。要安装它,请转到文件/设置/插件
安装后转到“帮助/查找操作” ,键入“运行时”,然后从下拉菜单中选择jre 13。
答案 8 :(得分:0)
对我来说,它删除了target
文件夹后就起作用了