如何解决Java Runtime(类文件版本55.0),此版本的Java Runtime仅识别类文件版本高达52.0的错误? [重复]

问题描述 投票:0回答:2

我正在尝试在 IntelliJ 中运行 Spring Boot 应用程序。

但是当我尝试运行时,我收到以下错误消息:

线程“main”java.lang.UnsupportedClassVersionError中出现异常: 我的项目 已由更新版本的 Java 运行时(类 文件版本 55.0),此版本的 Java 运行时仅识别 类文件版本高达 52.0

这是我的运行配置下的 JRE 位置:

enter image description here

我尝试在这里安装几个不同的 Java 版本:

enter image description here

这是我当前的系统/环境变量:

环境变量:

JAVA_HOME: C:\Program Files\Java\jdk-11.0.12\bin

系统变量:

Path: C:\Program Files\Java\jdk-11.0.12\bin ....

我试图找到与版本匹配的JRE,但一直找不到。

有人可以告诉我需要进行哪些更改才能在本地成功运行此应用程序吗?

java windows gradle intellij-idea
2个回答
32
投票

在您的项目上打开 IntelliJ,然后转到“文件”>>“项目结构”>>“项目”,然后在“项目 SDK”选项上选择“java 11”并应用更改。

Intellij 项目结构

编辑--------

然后在“文件”>>“设置”上尝试这些选项。

1.设置Gradle JVM Home Gradle JVM

2.在Project模块设置中设置JDK版本 项目模块中的JDK版本

3.检查Modules中的JDK版本 模块中的版本

关闭 IntelliJ 并再次打开。


14
投票

如果您尝试在 IDE 外部执行代码...

问题是Windows....

打开命令提示符并输入“where java”。当你这样做时,你会注意到一条“奇怪”的路径,看起来像这样

C:\Program Files\Common Files\Oracle\Java\javapath\java.exe

我不记得哪个Windows版本引入了这个快捷方式,但我想说它是Windows 7。问题是这个快捷方式指向一个比用于编译的Java版本更新的运行时环境代码。换句话说,Java是向后兼容的;不向前兼容。编译后的代码无法在较新的 Java 版本中运行。

如何在 Windows 上修复此问题?

一种方法是转到系统环境变量并编辑 Path 系统变量并在路径的最开头添加 JAVA_HOME。会是这样的

%JAVA_HOME%; {YOUR OTHER PATHS HERE}

如果没有,并且您正在尝试在 IDE 中执行

问题可能类似。您的 PROJECT 属性和全局 IDE 属性之间可能存在冲突,其中运行时环境指向比用于编译的 JDK 更新的 Java 版本。

也就是说...我几年前开发的一个应用程序遇到了一个非常奇怪的问题。这是一个客户端/服务器应用程序,我的一位同事遇到了这个问题,因为她不知道的是,后台运行的服务器版本导致了冲突。因此,如果您有类似类型的应用程序,请使用任务管理器检查您的进程,并确保您 1) 关闭此应用程序并重试,或 2) 卸载该应用程序并重新安装新应用程序。在她的例子中,她尝试重新启动电脑,但没有成功,因为该过程会在每次重新启动后自动启动。

© www.soinside.com 2019 - 2024. All rights reserved.