我正在尝试使用新的 Java 7 switch on strings 功能。
但是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>
但它似乎并不能解决问题。
如有任何提示,我们将不胜感激。
最佳答案
我们正在运行 Tomcat 6 并且遇到了同样的问题。我们的解决方案是:
- 将
tomcat/lib/ecj-3.3.1.jar
替换为ecj-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,但这可能不适合所有人。
关于tomcat - 如何更改tomcat编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6780639/