Java 21环境下Parboiled报错:不支持类文件主版本65
Parboiled 1.4.1在Java 21下报错:Unsupported class file major version 65 解决方案
问题原因
Parboiled 1.4.1内置的ASM(字节码操作库)版本过低,不支持Java 21对应的类文件主版本号65。Parboiled创建解析器时会通过ASM动态修改解析器类的字节码,旧版ASM无法识别Java 21编译生成的类文件,因此抛出该异常。
解决方案
方案1:升级Parboiled到最新稳定版
Parboiled 1.5.0及以上版本已更新ASM依赖,支持更高版本的Java。修改build.gradle的依赖配置:
dependencies { implementation 'org.parboiled:parboiled-java:1.5.1' }
方案2:强制升级ASM依赖(不升级Parboiled的情况下)
如果暂时无法升级Parboiled,可以手动排除其自带的旧版ASM,引入兼容Java 21的ASM版本(建议9.5及以上):
dependencies { implementation('org.parboiled:parboiled-java:1.4.1') { exclude group: 'org.ow2.asm' } implementation 'org.ow2.asm:asm:9.5' implementation 'org.ow2.asm:asm-commons:9.5' }
验证
修改配置后重新执行gradle run,即可正常创建解析器,不会再出现版本不兼容的异常。
内容的提问来源于stack exchange,提问作者Yaun
相关产品推荐
相关产品推荐

