不支持的类文件主版本61



我正在尝试将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)

Glowroot和我的应用程序似乎都没有使用gradle,所以我不知道这种不兼容是从哪里来的。

你知道我怎么才能找到不兼容的根源,然后我怎么解决它吗?

谢谢!

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

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

也有Jacoco

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

只要将Jacoco升级到0.8.8或更高版本,就可以了。

(我错误地锁定了"不支持的类文件主要版本61 ";消息而不查看堆栈跟踪)

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

问:如何解决这个问题?A:使用glowroot 0.14.0-beta。2岁或以上;见https://github.com/glowroot/glowroot/issues/906。或者,为较早的(目标)Java版本构建应用程序及其依赖项(根据需要),并且(可能1)在较早的Java版本上运行。


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

错误"不支持类文件主要版本61"&;只是意味着Java 17不支持某些库。阅读这个来理解- https://mkyong.com/java/java-unsupported-class-file-major-version-61/

这个错误上面的堆栈跟踪将告诉您是哪个依赖项。您需要将该依赖项升级为Java 17兼容的依赖项。

最新更新