一尘不染

如何更改tomcat编译器

tomcat

我正在尝试使用新的Java 7字符串开关功能。

但是Tomcat没有合作。

我已经确定tomcat在Java 7下运行,但是似乎它没有在它下编译。

我已将以下内容添加到web.xml文件中的jsp servlet条目下

    <init-param>
        <param-name>compiler</param-name>
        <param-value>C:/Program Files/Java/jdk1.7.0/bin/javac.exe</param-value>
    </init-param>

但这似乎并不能解决问题。

任何提示将不胜感激。


阅读 224

收藏
2020-06-16

共1个答案

一尘不染

我们正在运行Tomcat 6,并且遇到了同样的问题。我们的解决方案是:

  • 替换tomcat/lib/ecj-3.3.1.jarecj-3.7.2.jar(可以取自最新的Tomcat 7版本);
  • 将此添加到 tomcat/conf/web.xml
        ...
    <servlet>
      <servlet-name>jsp</servlet-name>
      <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
      <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>                                    <!-- this should be added -->
          <param-name>compilerSourceVM</param-name>
          <param-value>1.7</param-value>
      </init-param>
      <init-param>
          <param-name>compilerTargetVM</param-name>
          <param-value>1.7</param-value>
      </init-param>                                   <!-- last added line -->
      <load-on-startup>3</load-on-startup>
    </servlet>

当然,更简单的选择是安装Tomcat 7,但这可能并不是每个人的选择。

2020-06-16