在默认情况下,Tomcat 5.5或更高版本使用一个绑定的 Eclipse JDT 编译器编译 JSP 页。你可以访问 http://www.eclipse.org/jdt/core 地址,查看 Eclipse JDT 核心页,了解该编译器的更多信息。如下图:
JDT 编译器是用纯 Java 编写的,在 Tomcat 上执行与 JDK 的 javac 命令相同。因为 Tomcat 绑定了JDT 编译器,所有 Tomcat 在仅仅只有 JRE 环境时,依然能够编译 JSP 页,充当 JSP 页容器。
启动刚下载和安装好的 Tomcat,访问“/docs/introduction.html”页面,点击左边“Release Notes”菜单,打开发行说明信息(通过 Ctrl + F 打开搜索框,搜索 JDT),你会看到如下信息:
=================== Dependency Changes: =================== Tomcat 7.0 is designed to run on Java SE 6 and later. In addition, Tomcat 7.0 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment (JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the binary Tomcat distributions. Tomcat can also be configured to use the compiler from the JDK to compile JSPs, or any other Java compiler supported by Apache Ant.
上面大概意思:Tomcat 7.0 使用 Eclipse JDT Java 编译器编译 JSP 页面。这意味着您不再需要拥有完整的用于运行 Tomcat 的 Java 开发工具包(JDK),只需一个 Java 运行时环境(JRE)就足够了。Tomcat 还可以配置为使用 JDK 中的编译器来编译JSP,或任何其他受 Apache Ant 支持的 Java 编译器。
如果你选择该种编译器模式,那你就可以配置 Ant 自身可支持的任何 Java 编译器。默认情况下,Ant 使用 JDK 的 javac 编译器。
要将 Tomcat 从使用默认 JDT 编译器改为 Ant 编译器,步骤如下:
将 Tomcat 的 %CATALINA_HOME%/lib 目录下的 ecj-4.4.2.jar 文件删除或者备份到其他目录。此时,重启 tomcat,访问 JSP 页面会抛出如下错误信息:
访问 Ant 官网,下载 Ant 安装包。下载地址 https://dlcdn.apache.org//ant/binaries/apache-ant-1.9.16-bin.zip。
注意:1.9.16 版本运行时至少需要 Java 5。1.10.12 版本,运行时至少需要 Java 8。
a、将 ant.jar 文件拷贝到 CATALINA_HOME/lib 目录下
b、将 %JAVA_HOME%/lib 下的 tools.jar 文件拷贝到 CATALINA_HOME/lib 目录下
重启 Tomcat,访问 JSP 页面正常。