intellij idea由Java运行时的最新版本(类文件版本57.0)编译而成
我用IntelliJ解决了这个问题。但是我的系统上新安装的所有东西都是最新版本的
。。。已由较新版本的Java运行时(类文件版本57.0)编译,此版本的Java运行时仅识别高达52.0的类文件版本
我设定了:
路径为C:\Program Files\Java\jdk-13 JAVA_主页:C:\Program Files\JAVA\jdk-13 JRE_主页: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)
# 1 楼答案
我如何在Eclipse中解决它
转到项目的属性
转到Java编译器
将编译器复杂级别更改为我的项目使用的java(我的项目中的java 11) 您可以看到,当最后一条消息消失时,您工作的是java
申请
# 2 楼答案
您需要再次检查
PATH
环境设置C:\Program Files\Java\jdk-13
您当前拥有的信息不正确。请确保在PATH
列表的顶部有最新JDK版本的bin
子目录java.exe
可执行文件位于C:\Program Files\Java\jdk-13\bin
目录中,所以这就是PATH
中需要的内容使用this tool在Windows上快速验证或编辑环境变量。它允许对
PATH
项重新排序。它还将以红色突出显示无效路径如果希望代码也在较低的JDK版本上运行,请在IDE中更改目标字节码版本。有关相关屏幕截图,请参见this answer
Java类文件版本另请参见this answer。实际情况是,您使用Java 13和13语言级字节码(target)构建代码,并尝试使用Java 8运行它,根据
PATH
变量配置,Java 8是第一个(默认)Java版本解决方案是将Java13
bin
目录放在上面的PATH
中,或者代替Java8。在Windows上,您可能会自动将C:\Program Files (x86)\Common Files\Oracle\Java\javapath
添加到PATH
中,现在它指向Java 8:如果是这样,请从
PATH
中删除突出显示的部分,然后注销/登录或重新启动,以使更改生效。您需要以管理员身份重新启动才能编辑系统变量(请参见系统变量列右上角的按钮)# 3 楼答案
我也遇到了类似的问题,被问到here。问题是,有些应用程序自带JRE,有时安装的JDK在环境路径中的优先级较低。现在有两种选择:
我还删除了@CrazyCoder建议的路径
# 4 楼答案
这是IntelliJ IDEA中的一个设置(
$JAVA_HOME
,语言级别设置为1.8):File
>Settings
>Build, Execution, Deployment
>Gradle
>Gradle JVM
选择例如
Project SDK (corretto-1.8)
(或任何其他兼容版本)然后删除
build
目录并重新启动IDE# 5 楼答案
我在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
或者
路径
%JAVA_HOME%
%JRE_HOME%
# 6 楼答案
当我尝试运行一些Groovy脚本时,我在IntelliJ上遇到了类似的问题。 下面是我如何解决的
转到“项目结构”->;“项目”->;“项目语言级别”并选择“SDK默认值”。这应该对所有项目模块使用相同的SDK