tomcat 8(今天是RC1 - 请参阅this)是否支持Java 8,即使它仍处于测试阶段?
其中Tomcat 8支持Java EE 7:
我在使用Tomcat 7 / Java 7的past时遇到了麻烦,这就是我问这个问题的原因。
更新
关于infoq的一篇有趣的文章表明tomcat 8已经为java 8做好了准备。即使是Tomcat 7也是如此。
请参阅文章here
如果您发现任何兼容性问题,我会在此处报告。
答案 0 :(得分:33)
根据Tomcat Docs:
可以使用任何已安装的Java 7或更高版本的JRE(32位或64位)。
答案 1 :(得分:10)
使用在Java 8 + Spring 4.0.2上编写的Web应用程序测试Tomcat 7.0.50,使用lambda表达式,方法引用和流 - 就像一个魅力!
答案 2 :(得分:5)
它不支持开箱即用。你必须做一些改变。 在apache home \ conf \ web.xml中,在jsp部分添加以下行。
<init-param>
<param-name>compiler</param-name>
<param-value>modern</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>suppressSmap</param-name>
<param-value>true</param-value>
</init-param>
我还在setenv.sh(或bat)中的classpath中添加了以下条目:
导出CLASSPATH=$JAVA_HOME/lib/tools.jar:$CLASSPATH
请注意,我还需要将java_home设置为1.8(这里有一点点,但可能值得一提)
以下是一些消息来源: http://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html http://mail-archives.apache.org/mod_mbox/tomcat-dev/201301.mbox/%3C7CF0788AAB53854AB15567D68F41960238297F32@CH1PRD0410MB369.namprd04.prod.outlook.com%3E
答案 3 :(得分:3)
Tomcat 8.0旨在在Java 7上运行。作为参考,支持以下规范:
答案 4 :(得分:2)
我在Linux上尝试过它并不起作用。在JSP页面中执行lambda表达式时,会抛出以下错误
仅在源级别1.8或更高级别允许使用Lambda表达式 Apache Tomcat / 8.0.14
它在JDK jdk1.8.0_25上运行
答案 5 :(得分:2)
感谢Chewy,我正在寻找最后1个小时在jsp中编译lambdas它对我有用。
更新了tomcat的web.xml中的jsp部分,如下所示(只需要进行这么多更改):
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>compiler</param-name>
<param-value>modern</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>suppressSmap</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>mappedfile</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
答案 6 :(得分:0)
您可以在web..xml中初始化编译值 然后你就可以使用Tomcat8。
Tomcat 8:Servlet 3.1,JSP 2.3和EL 3.0。