有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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)

共 (6) 个答案

  1. # 1 楼答案

    我如何在Eclipse中解决它

    1. 转到项目的属性 enter image description here

    2. 转到Java编译器 enter image description here

    3. 将编译器复杂级别更改为我的项目使用的java(我的项目中的java 11) 您可以看到,当最后一条消息消失时,您工作的是java

    4. 申请 enter image description here

  2. # 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版本

    解决方案是将Java13bin目录放在上面的PATH中,或者代替Java8。在Windows上,您可能会自动将C:\Program Files (x86)\Common Files\Oracle\Java\javapath添加到PATH中,现在它指向Java 8:

    javapath

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

  3. # 3 楼答案

    我也遇到了类似的问题,被问到here。问题是,有些应用程序自带JRE,有时安装的JDK在环境路径中的优先级较低。现在有两种选择:

    1. 卸载另一个拥有自己的JDK/JRE的应用程序
    2. 有时无法删除另一个应用程序,这就是我的情况。所以我把自己安装的JDk移到了环境路径中更高的优先级

    enter image description here

    我还删除了@CrazyCoder建议的路径

  4. # 4 楼答案

    这是IntelliJ IDEA中的一个设置($JAVA_HOME,语言级别设置为1.8):

    File>Settings>Build, Execution, Deployment>Gradle>Gradle JVM

    选择例如Project SDK (corretto-1.8)(或任何其他兼容版本)

    然后删除build目录并重新启动IDE

  5. # 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. # 6 楼答案

    当我尝试运行一些Groovy脚本时,我在IntelliJ上遇到了类似的问题。 下面是我如何解决的

    转到“项目结构”->;“项目”->;“项目语言级别”并选择“SDK默认值”。这应该对所有项目模块使用相同的SDK