jikes是一个比javac速度快的java编译器,它是IBM的一个开放源码项目
在一些Application Server运行时,我们为了提高运行的速度,会选择对jsp文件进行预编译,但是如果项目比较大的话,对于所有的jsp编译会花费很长的时间,所以这个时候需要选择一个快速的java编译器,据说Symantec的sj速度最快,但是目前好像没有继续开发,不支持jdk1.4以上了,所以我们选择稍次之的jides编译器,不过jikes没有提供对win32平台的encoding属性的支持,在我们使用的时候一直被这问题所困扰,这个可以通过运行jikes help来查看。后来通过参考Sourceforge中有关文章,才得以完成,原文地址http://jikes.sourceforge.net/faq/dev-win32.shtml。
这里想说说过程中碰到的一些问题
操作步骤
1。首先下载jikes的原码文件,目前最新好像是1。22,不过利用最新的编译出来的结果还是不能用,还没有发现问题所在,后来使用1.18版本编译结果OK,下载地址http://sourceforge.net/project/showfiles.php?group_id=128803,下载源码扩展名为tar.bz2的文件,保存路径C:\temp
2。下载编译环境,使用MinGw+MSyS模拟编译环境,下载最新的MinGw和MSYS包,下载地址http://sourceforge.net/project/showfiles.php?group_id=2435,下载完成首先安装MinGw,然后安装MSYS,在安装的过程中会弹出终端窗口要求指定gcc.exe(在MingGW的bin目录下)的路径,如果你的安装路径为C:\MinGWStudio\MinGW\bin,按照屏幕输入为unix格式C:/MinGWStudio/MinGW,完成MSYS环境和编译工具gcc的绑定。完成后就可以直接运行桌面上的msys的快捷方式进入模拟平台。
3。要编译jides首先要编译 libiconv ,下载源码libiconv-1.8.tar.gz,假如保存路径为c:\temp,
则按照如下的操作步骤在MSYS环境中对libiconv 进行编译
$ tar xvzf /c/temp/libiconv-1.8.tar.gz
$ mkdir libiconv-build
$ cd libiconv-build
$ ../libiconv-1.8/configure --enable-extra-encodings --enable-static --disable-shared
$ make
$ cd ..
4。编译jikes源码,假定刚才下在的源码在c:\temp下,使用下面命令进行编译
$ tar xvjf /c/temp/jikes-1.18.tar.bz2
$ mkdir jikes-build
$ cd jikes-build
$ ../jikes-1.18/configure CPPFLAGS=-I/c/temp/libiconv-build/include LDFLAGS=-L/c/temp/libiconv-build/lib/.libs
$ make
这里对源文中的CPPFLAGS,LDFLAGS属性进行了修改,确保编译路径的正确。执行玩make后,你就有了一个自己的包括encoding属性的jikes.exe,可以从jikes-build/src底下获取,祝你好运。