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

getting Invalid byte tag in constant pool : 19

我正在创建一个网络服务并收到类似

的错误

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

我正在使用 tomcat 8.0,java 版本是 1.8.0.152。

标记类型为19的常量池条目是模块描述符;参见 JVM spec table 4.4-A。我认为您已尝试在使用 Java 9(或更高版本)编译器编译的 class 上使用 BCEL:

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