不支持的类文件主要版本 61

Mor*_*itz 18 java incompatibility java-17 glowroot

我正在尝试将Glowroot集成到我的 Java 应用程序中。不幸的是,我收到以下错误:

2022-05-13 09:25:57.777 ERROR o.g.a.w.PointcutClassFileTransformer - Unsupported class file major version 61
java.lang.IllegalArgumentException: Unsupported class file major version 61
    at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.<init>(ClassReader.java:196)
Run Code Online (Sandbox Code Playgroud)

Glowroot 和我的应用程序似乎都不使用 gradle,所以我不知道这种不兼容性从何而来。

您知道如何找到不兼容的根源以及如何修复它吗?

谢谢你!

编辑:我在版本 0.13.6 中使用 Glowroot 。

第二次编辑:似乎glowroot的版本是问题所在......

man*_*cia 37

还有雅可可

升级到 java 17 并拥有 Jacoco 0.8.5 时也会发生此错误。它可能会抱怨某些无法理解的类文件。

只需将 Jacoco 升级到 0.8.8 或更高版本即可。


Ste*_*n C 5

(我错误地将注意力集中在“不支持的类文件主要版本 61”消息上,而没有查看堆栈跟踪。)

问题(正如 @Mark Rotteveel 所指出的)是,glowroot 在尝试使用 ASM 进行一些代码转换时失败。显然,ClassReaderglowroot 0.13.6 中捆绑的 ASM 版本不理解版本 61 (Java 17) 类文件。

问:如何解决这个问题?

A:使用glowroot 0.14.0-beta.2或更高版本;请参阅https://github.com/glowroot/glowroot/issues/906。或者,为早期(目标)版本的 Java 构建应用程序及其依赖项(根据需要),并(可能1)在早期版本的 Java 上运行。


1 - 这取决于代码转换是否涉及 ASMClassReader读取 Java SE 类。


San*_*alp 5

错误“不支持的类文件主要版本 61”仅意味着 Java 17 不支持某些库。阅读本文以了解 - https://mkyong.com/java/java-unsupported-class-file-major-version- 61/

此错误上方的堆栈跟踪将告诉您哪个依赖项。您需要将该依赖项升级到符合 Java 17 的依赖项。