this version of the Java Runtime only recognizes class file versions up to 55.0 at ...

博客内容讲述了在遇到Java运行时出现`UnsupportedClassVersionError`错误时,由于编译版本高于运行版本导致的问题。作者选择了将运行版本提升到jdk17并保持编译版本为jdk11的解决方案,通过调整子模块编译版本来解决问题。文章强调了版本兼容性在Java开发中的重要性。

Java运行报错

报错信息:

Exception in thread "main" java.lang.UnsupportedClassVersionError: ###Application has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)

报错原因:

编译版本和运行版本不一致,具体原因是编译版本高于运行版本

我的出错代码如下:
在这里插入图片描述
在这里插入图片描述

修改方法:遵循高运行低编译

  1. 将运行版本换成 jdk 17
  2. 将编译版本降低成 jdk 11

我选的是第二种方式,调整如下
将需要运行的子模块编译版本指定成 jdk 11
在这里插入图片描述

### Java 运行时版本不兼容问题分析 当遇到 `Java runtime version incompatible with class file version` 错误时,这通常意味着编译代码所使用的 JDK 版本与运行该代码的 JRE/JDK 版本之间存在差异。具体来说,在此案例中提到的是类文件版本为 61.0 的错误提示。 对于此类问题,可以采取以下措施来解决问题: #### 方法一:升级JVM至更高版本 由于类文件版本 61 对应于 Java 17 编译器生成的目标字节码[^5],因此建议将 JVM 升级到至少相同或更高的版本。可以通过下载并安装最新版 OpenJDK 或 Oracle JDK 来实现这一点。 #### 方法二:调整项目构建工具配置 如果使用 Maven 构建项目,则可以在 pom.xml 文件内指定源和目标兼容性级别;如果是 Gradle,则应在 build.gradle 中设置相应的属性。以下是针对这两种情况的具体操作方法: ##### 使用Maven的情况 ```xml <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> ``` ##### 使用Gradle的情况 ```groovy android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } } ``` 通过上述任一种方式设定合适的 Java 版本参数后重新编译应用程序即可尝试修复因版本不符而导致的问题。 #### 方法三:修改IDE中的JDK路径 有时开发环境(如 IntelliJ IDEA 或 Eclipse)可能指向了一个较低版本的 JDK。此时应该进入 IDE 设置界面更改项目的 SDK 路径为所需的新版本 JDK 安装位置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值