问题描述
我正在与 Intellij IDEA + JDK 14 一起使用,并希望在我的控制台中以jar形式执行我的项目。为此,我使用
java -jar pathToJar
始终存在以下错误消息:
Exception in thread "main" java.lang.UnsupportedClassversionError: de/marco/api/Main has been compiled by a more recent version of the Java Runtime (class file version 58.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”下设置了JDK的路径。我的计算机使用 Java 8 :
C:\Users\User>java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) Client VM (build 25.261-b12,mixed mode)
任何人都可以帮助我如何更改计算机的Java版本,以便为编译器使用更新的版本。非常感谢
解决方法
这很简单:
- 要么告诉IntelliJ将类编译为Java 8字节码
- 或者您确保Windows命令行指向Java 11设置
对于Intellij;您可以查看“项目设置”,然后转到“平台设置”下的“ SDK”。您可以将其指向JDK8安装。
或者,您可能是故意安装了Java 14:找到它在磁盘上的位置,并确保Windows PATH变量指向该位置。或只是将一些“包装器”脚本放入PATH中的某个位置,并将该包装器脚本称为“ java 14” java。
,您编写了程序,并使用了比用于执行程序的更高版本的jdk对其进行了编译。 只需进行构建设置,并将编译器合规性级别设置为您使用的jdk。 如果要使用JDK 14而不是8,则只需卸载jdk 8,java将使用jdk14。希望对您有所帮助:)
,您的程序无法正常工作,因为您的计算机指向PATH中的Java JDK的旧版本。您可以只卸载Java 8并重新安装Java14。在某些情况下,如果不想删除旧的Java或手动更改了PATH变量,则:
步骤1:从PATH中删除Java JDK的旧项目。
在开始按钮旁边的搜索栏中键入“此PC”->右键单击“此PC”,选择“属性”->单击左侧栏中的“高级系统设置”->单击“高级”选项卡->单击底部的“环境变量”按钮->修改“系统变量”面板下的“路径”变量,并删除所有您的旧Java路径信息(或其他变量中包含旧Java信息的任何项目) 。如果操作正确,则Java -version现在不应正常工作。
步骤2:从安装程序安装Java JDK 14
新的Java PATH信息将自动添加到PATH环境变量中。您无需手动更新任何内容。 (如果需要,请按照步骤1更改PATH)