我收到这个错误“期望在这个位置有一个堆栈映射帧”。我使用的是Java 8。我知道对于Java 7,有一个变通方法可以使用-XX:-UseSplitVerifier来使用不太严格的验证方法。然而,这个选项在Java 8中被删除了。我想知道是否有其他解决方案。切换到较早版本的Java不是一种选择。
发布于 2015-02-02 18:30:11
选项-XX:-UseSplitVerifier的目的是让字节码库和工具开发人员有时间赶上并修复堆栈映射表的问题。JVM开发人员决定在最新的JRE中删除该选项,因为已经有足够的时间修复这些工具。
因此,最好的解决方案是遵循这个意图,并使用最新的工具及其选项来生成正确的堆栈映射帧。既然您已经用java-bytecode-asm标记了您的问题,我建议您在创建类文件时使用它的标志ClassWriter.COMPUTE_FRAMES。
https://stackoverflow.com/questions/28269409
复制相似问题