首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >常数池中的org.apache.tomcat.util.bcel.classfile.ClassFormatException:无效字节标记:15-Tomcat 7,JDK不兼容?

常数池中的org.apache.tomcat.util.bcel.classfile.ClassFormatException:无效字节标记:15-Tomcat 7,JDK不兼容?
EN

Stack Overflow用户
提问于 2014-05-06 00:31:37
回答 3查看 36.5K关注 0票数 24

我试着升级到Java 8。当使用Java7编译的tomcat7文件启动我们的tomcat7服务器时,我会得到下面这个神秘的错误。

我应该指望这件事成功吗?这个post说tomcat 7应该与1.6及以上的人一起工作。我不知道是该怪Tomcat还是.war。选择不同的Java版本:

  • JDK7.45安装- works (用于编译.war的相同版本)
  • JDK 7.55安装-失败如下
  • 安装JDK 8.05 -失败如下

是替罪羊还是.war?

代码语言:javascript
复制
Caused by: org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
        at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:131)
        at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60)
        at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209)
        at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2032)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1923)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1891)
        at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1877)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-07 06:59:05

我在Tomcat 7.0.26中看到了这个错误。

要回答你的问题,应归咎于:bug.cgi?id=53735

升级到7.0.53版本为我修复了它(根据链接问题,修复应该在7.0.30及更高版本)。

票数 30
EN

Stack Overflow用户

发布于 2015-12-02 18:43:45

我也面临着这个问题。我跟踪了错误,我发现我需要升级到我们的ICU4J jar的maven依赖关系的最新版本。

这个错误现在消失了:

代码语言:javascript
复制
  <dependency>
     <groupId>com.ibm.icu</groupId>
     <artifactId>icu4j</artifactId>
     <version>56.1</version>
  </dependency>
票数 0
EN

Stack Overflow用户

发布于 2016-01-15 11:55:30

我的电脑上有Java 8,但我想使用Java 7运行--我的Tomcat。

下面的解决方案对我有效。

%CATALINA_HOME%\bin\ (例如: C:\Tomcat\bin)中添加具有以下内容的setenv.bat:

代码语言:javascript
复制
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_03
set JRE_HOME=%JAVA_HOME%\jre
exit /B 0

当您运行startup.bat,时,会发生以下调用:

代码语言:javascript
复制
startup.bat
     |
     └── catalina.bat
               |
               └── setenv.bat
  • 见: 如果不存在"%CATALINA_BASE%\bin\setenv.bat“,checkSetenvHome调用"%CATALINA_BASE%\bin\setenv.bat”
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23484098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档