tomcat - 如何更改tomcat编译器

标签 tomcat java-7

我正在尝试使用新的 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/

相关文章:

使用 Maven 构建 Java 代码并将 war 存储在 nexus 中并且必须部署到应用服务器

Debian Linux 上的 Java 闪屏闪烁

android - 在 Java 7/Android 上向后移植 StreamSupport

tomcat - 如果我替换 gwt 编译的 war 文件夹中的 .class 文件。它会工作吗?

java - 无法启动tomcat 7 : Caused by: java. lang.NoClassDefFoundError

java - 在等待 "long"时间时重用 tomcat 线程

tomcat - UTF-8 编码的 j_security_check 用户名在 Tomcat 领域中被错误地解码为 Latin-1

java - 带有 MySQL 连接器的 Tomcat 7 : ASM ClassReader failed to parse class file

java - Netbeans 探查器 : Connecting to the target vm forever

java - @SafeVarargs 和 Java 6 的互操作性