在常量池中获取无效的字节标签:19

2022-01-21 00:00:00 rest web-scraping java tomcat8 jersey

我正在创建一个 web 服务并收到类似的错误

i am creating one webservice and getting error like

org.apache.tomcat.util.bcel.classfile.ClassFormatException:常量池中的无效字节标记:19.

org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19.

我使用的是 tomcat 8.0,java 版本是 1.8.0.152.

i am using tomcat 8.0 and java versoin is 1.8.0.152.

推荐答案

标签类型为 19 的常量池条目是模块描述符;请参阅 JVM 规格表 4.4-A.我认为您已尝试在使用 Java 9(或更高版本)编译器编译的类上使用 BCEL:

A constant pool entry with tag type 19 is a module descriptor; see JVM spec table 4.4-A. I think you have attempted to use BCEL on a class compiled with a Java 9 (or later) compiler:

  • 您使用的 BCEL 版本不理解标签.
  • 无论如何,该类都不会加载到 Java 8 JVM 中.模块仅在 Java 9 中引入,并且类文件的主要版本号对于 Java 8 JVM 来说应该太新了.

相关文章