Tomcat Java 编译器差异

Tomcat Java Compiler difference

我有两台 tomcat 5.5 服务器。一种用于开发,一种用于生产。 运行 都在 Java 1.6 上。但最近我遇到了一个问题,泛型无法在生产环境中 运行 但在开发环境中 运行 很顺利。这两个系统的区别在tomcat 5.5/common/lib/。我的开发环境包含 ecj-3.7.2.jar,但生产环境没有此文件,而是包含 jasper-compiler-jdt.jar

当我用 ecj-3.7.2.jar 替换 jasper-compiler-jdt.jar 时,泛型工作正常。据我了解,这些是 Eclipse 的 JDT 编译器库,我能知道有什么区别和导致这个问题的原因吗?非常感谢!

jasper-compiler-jdt.jarecj-3.7.2.jar的区别是ecj是64位Java1.6.41的编译器,后者是32位Java1.6.19的编译器。即使两个编译器都来自 Java 1.6,jasper-compiler-jdt.jar 也不能像 ecj.jar 那样支持泛型。