【问题标题】:How to resolve Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 error? [duplicate]如何解决 Java Runtime(类文件版本 55.0),这个版本的 Java Runtime 只能识别类文件版本高达 52.0 的错误? [复制]
【发布时间】:2022-01-05 22:25:16
【问题描述】:

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

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

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

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

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

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

环境变量:

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

系统变量:

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

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

谁能告诉我需要做哪些更改才能在本地成功运行此应用程序?

【问题讨论】:

  • 您是否尝试更改“运行配置”下的 JRE 位置?它现在说 1.8,你需要它是 11+
  • 当然。在 Java 8 之后,它们之间的区别被删除了。您仍然不需要两者。 The JDK includes the JRE, so you do not have to download both separately
  • 无论如何,还有其他信息缺失。你在使用 Maven/Gradle 吗? that 是否将您的代码编译为 Java11?那么 IntelliJ 的运行配置设置为 Java8 呢?
  • 它正在使用 Gradle
  • 好的,你看到有类似sourceCompatibility 11 的行吗?还是targetCompatibility 11?你能把它改成 8 并运行它吗?

标签: java windows gradle intellij-idea


【解决方案1】:

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

问题是 Windows....

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

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

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

你如何解决这个问题?

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

%JAVA_HOME%; {YOUR OTHER PATHS HERE}

如果您尝试在 IDE 中执行,问题类似。潜在地,您的 PROJECT 属性和全局 IDE 属性之间可能存在冲突,其中运行时环境指向的 Java 版本比用于编译的 JDK 更新。那就是……

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

【讨论】:

  • AFAIK,IntelliJ 总是引用自己设置中定义的完整 java exe 路径,不依赖于操作系统环境
  • @OneCricketeer 我对 IntelliJ 本身了解不多,但大约 5 年前我帮助一位同事解决了一个类似的问题。我用这个奇怪的边缘案例编辑了我的答案,以防万一。我们的问题困扰了我们几乎一整天(信不信由你)
【解决方案2】:

在您的项目上打开 IntelliJ 并转到 File >> Project Structure >> Project 并在 Project SDK 选项上选择 java 11 并应用更改。

Intellij Project structure

编辑--------

然后在文件>>设置中尝试这些选项。

1.设置Gradle JVM Home Gradle JVM

2.在Project模块设置中设置JDK版本 JDK version in the Project module

3.查看Modules中的JDK版本 version in the Modules

关闭 IntelliJ 并再次打开它。

【讨论】:

  • 当我尝试这个时,我收到以下错误Unsupported class file major version 61
  • @user9847788 你也安装了Java 17
  • 可能您需要在 intelliJ 上的同一窗口设置上配置 java 17,项目要求它,这取决于您如何配置 gradle 文件。
猜你喜欢
  • 2022-06-15
  • 2019-10-07
  • 1970-01-01
  • 2021-01-07
  • 2020-12-26
  • 2020-03-27
  • 2021-08-20
  • 2021-12-31
  • 2020-01-27
相关资源
最近更新 更多