“正式答案”是Tomcat 7在Java 8上运行,请参见 http://tomcat.apache.org/whichversion.html(“Java 6及更高版本”)。
但是,如果启用了注释扫描(web.xml中的metadata-complete =“ true”),则由于BCEL(无法处理新的Java 8字节代码)而会出现一些问题。你将获得类似的异常(至少对于Tomcat 7.0.28):
SEVERE: Unable to process Jar entry [jdk/nashorn/internal/objects/NativeString.class] from Jar [jar:file:/usr/lib/jvm/jdk1.8.0_5/jre/lib/ext/nashorn.jar!/] for annotationsorg.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)
如果不使用注释扫描,则从版本7.0.53(具有更好的Java 8支持的更新的编译器)开始,一切正常。
(UPDATE二○一四年十月一十七日)如果你正在使用注解扫描和自己的代码是不是Java 8为主,另一种解决方案是添加以下行
/etc/tomcat7/catalina.properties(“蚂蚁launcher.jar”之后添加文本,以便物业部分
tomcat.util.scan.DefaultJarScanner.jarsToSkip):
junit.jar,junit-*.jar,ant-launcher.jar,jfxrt.jar,nashorn.jar
在Debian 7.6上使用Tomcat 7.0.28和Oracle JDK 8_25进行了测试。



