tomcat和ant中使用jikes

jikes 是一个速度远快于 javac 的 java 编译器. 整合 ant 的方法:
1. 设置环境变量 JIKESHOME 为 jikes 的路径
2. 设置 ANT_OPTS=-Dbuild.compiler=jikes
3. 将 jikes 路径添加到系统 PATH 中
注意区分大小写.[/B]¬
然后在所有的ant任务就默认使用 jikes 了, 如果你想在单个工程中使用 ant, 就不要添加 ANT_OPTS 
环境变量, 只需要修改 build.xml 中 javac 标签中的 compiler 为 jikes, 例如¬
 failοnerrοr="true" compiler="jikes">¬
jikes 中可以设置如下值:¬
classic ( JDK 1.1 或者 1.2 标准 ) – 也可以使用 javac1.1 和 javac1.2 作为别名.
modern ( JDK 1.3/1.4/1.5 标准 ) – javac1.3, javac1.4, javac1.5 可以作为别名.
jikes
jvc - 微软的那个编译器
kjc - kopi 编译器
gcj - GCC 中的 gcj 编译器
sj - Symantec 的 java 编译器
extJavac 根据现有 jvm 决定使用 classic 或者 modern 模式
另外 jikes 中还有几个附加的属性设置:¬
build.compiler.emacs=false¬
build.compiler.fulldepend=false¬
build.compiler.pedantic=false¬
build.compiler.warnings=true¬
build.compiler.warnings 这个属性设置最好在 javac 标签中使用 nowarn 属性.¬
保存为 build.properties 文件, 在 build.xml 中这样调用:¬
¬
就可以使用 jikes 的附加属性了.¬
整合 tomcat 的方法:先如上设置 JIKESHOME 和系统 PATH¬
在 web 应用的 web.xml 中添加:¬

•      
•      jsp
•      

•      
•      org.apache.jasper.servlet.JspServlet
•      

•      
•          jspCompilerPlugin
•          org.apache.jasper.compiler.JikesJavaCompiler
•      

•      
•      -1
•      

•      

•      
•          
•          jsp
•          

•          
•          *.jsp
•          

•      

如果想要在所有 WEB 应用中使用 jikes, 则设置环境变量 CATALINA_OPTS=
-Dbuild.compiler.emacs=true, 然后打开 ${TOMCAT_HOME}/conf/web.xml, 找到:¬

•      jsp
•      org.apache.jasper.servlet.JspServlet
•      
•          fork
•          false
•      

•      
•          xpoweredBy
•          false
•      

•      3
•  

改为:¬

•      jsp
•      org.apache.jasper.servlet.JspServlet
•      
•          fork
•          false
•      

•      
•          compiler
•          jikes
•      

•      
•          xpoweredBy
•          false
•      

•      3
•  

需要注意的是由于 jikes for Windows 没有 -encoding 选项,因此编译 JSP 时会出错。所以上述方法只能在 Linux 上使用。解决起来也很简单,一种方法是编译 jikes for Windows(可以用 MinGW 编译),与 iconv for Windows 连接,使 jikes for Windows 获得 -encoding 选项。另一种方法难度小一点,就是修改 Ant 的代码,使得对于 jikes 不使用 -encoding 选项,然后给 jikes 加一个 wrapper,使用我以前写的那个 wrapper 中相同的方法。

你可能感兴趣的:(tomcat和ant中使用jikes)