我正在尝试将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的版本才是问题所在...
3条答案
按热度按时间qhhrdooz1#
(我错误地关注了“Unsupported class file major version 61”消息,而没有查看堆栈跟踪。)
问题(正如@Mark Rotteveel所指出的)是glowroot在尝试使用ASM进行一些代码转换时失败。显然,捆绑在glowroot 0.13.6中的ASM版本中的
ClassReader
不理解版本61(Java 17)类文件。Q:如何解决这个问题?
A:使用glowroot 0.14.0-β 2或更高版本;另一种方法是,为早期(目标)版本的Java构建应用程序及其依赖项(根据需要),并(可能1)在早期版本的Java上运行。
1 -这取决于代码转换是否涉及ASM
ClassReader
阅读Java SE类。oxalkeyp2#
错误“unsupported class file major version 61”仅仅意味着Java 17不支持某些库。
这个错误上面的堆栈跟踪会告诉你是哪个依赖项。你需要把那个依赖项升级到Java17兼容的依赖项。
carvr3hs3#
∮也和雅各布一起∮
当升级到java 17并且拥有Jacoco 0.8.5时也会发生这个错误。它可能会抱怨一些无法理解的类文件。
只需将Jacoco升级到0.8.8或更高版本,您就可以开始了。