刚刚把做完的项目从JDK5上移植到JDK1.4,事后整理一下,常常记记备忘录是个灰常好的习惯滴.呵.
Struts2.0默认的平台需求是:
- Servlet API 2.4
- JSP API 2.0
- Java 5
但是因为一些原因,我们必须使用JDK1.4来编译,所以只能应用Struts提供的J4,来进行一下移植了,说实话,还是挺好的,只需要简单的操作,便可以把JDK更改为1.4的了.原本我以为弄不好还得重新写代码呢,结果才发现,嗯,如此的简单.
好了,不废话了.
要想应用JDK1.4,使用的主要的是Struts2.0的发行包里提供的J4目录中的Retrotranslator.利用它可以将原JDK5的包转化成JDK1.4的.关于Retrotranstator的介绍,可以查看http://retrotranslator.sourceforge.net/,里面写的很详细.
在J4目录中,已经将Struts2.0基本的两个Jar文件转好了,分别是struts2-core-j4-2.0.9.jar和xwork-j4-2.0.4.jar.如果你的程序中还用到的其他的Jar包,可以通过脚本把Jar包转成J4版本的.我们的程序中用到了spring和sitemesh两个Plugin的Jar包,所以需要将这两个包转成J4的.
java -jar retrotranslator-transformer-1.2.2.jar -advanced -srcjar ../lib/struts2-sitemesh-plugin-2.0.9.jar -destjar struts2-sitemesh-plugin-j4-2.0.9.jar
java -jar retrotranslator-transformer-1.2.2.jar -advanced -srcjar ../lib/struts2-spring-plugin-2.0.9.jar -destjar struts2-spring-plugin-j4-2.0.9.jar
可以将它们写到一个Bat文件中,如果你用的是Windows的系统的话,使用Linux的用户可以存成sh文件.
执行Bat文件,将生成两个新的J4版本的包,struts2-sitemesh-plugin-j4-2.0.9.jar和struts2-spring-plugin-j4-2.0.9.jar.
将这四个Jar包放到WEB-INF/lib中,再将J4目录中的retrotranslator-transformer-1.2.2.jar, backport-util-concurrent-3.0.jar和retrotranslator-runtime-1.2.2.jar一起放到WEB-INF/lib下.
之后再把自己写的程序中所使用的JDK5的特性去掉,嗯,我们只用了Annotations等几个特性,所以改起来还是相当容易了.
至此,你的程序应该就可以在JDK1.4上运行了.
我使用的环境Tomcat5.0+jdk1.4.运行我修改后的程序,测试通过......
Over
PS:程序开发到后期,才告知运行环境有变,真的很让人郁闷啊