IT Notes‎ > ‎Java‎ > ‎Java Web / Java EE‎ > ‎Tomcat‎ > ‎

使 Tomcat 编译 JSP 支持 Java 8

Tomcat 7,8 都能运行在 Java 8 上,但跑在 tomcat 上的 web app 的 JSP 页面代码里却不一定能使用 Java 8 语法,如果强行使用 Java 8 语法,IDE 可能不会报错,但 web app 运行后,可能出现类似这种报错:
An error occurred at line: 19 in the jsp file: /abc.jsp
'<>' operator is not allowed for source level below 1.7

为何?
下表是 tomcat 7/8 支持的源码版本和输出的代码版本:
  compilerSourceVM compilerTargetVM
 Tomcat 7 1.6 1.6
 Tomcat 8 1.7 1.7
compilerSourceVM - What JDK version are the source files compatible with? (Default value: 1.7)
compilerTargetVM - What JDK version are the generated files compatible with? (Default value: 1.7)

这两个参数可以在 $CATALINA_BASE/conf/web.xml 中修改,在 servlet org.apache.jasper.servlet.JspServlet 的配置项中添加
       <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>

修改后,就可以在 JSP 页面中使用 Java 8 语法了。

修改这两个参数值,会有什么风险吗?暂未发现。

Ref:



Comments