参照如下网站:
http://txxm.iteye.com/blog/post/236954
项目之初,考虑到主流应用服务器大都开始支持Jdk1.5,另外一些开源库也要1.5才能运行,所以Jdk决定采用1.5版本。1.5的新特性确实很爽,呵呵。等到项目快结束的时候,又要求支持1.4,理由是用户现有服务器有可能不支持1.5。代码改成支持1.4,不仅浪费时间,而且还要放弃1.5的特性。看到网上介绍Retrotranslator,感觉不错,今天试用了一下,结果相当满意,tomcat5.0 + jdk1.4 将我的应用跑了起来,呵呵。
下面我将操作步骤记录下来:
1、在Jdk1.5下编译java源文件(这时的class只能在1.5下跑);
2、下载Retrotranslator,我用的是1.2.1版,解压后可得到三个jar,retrotranslator-transformer-1.2.1.jar、backport-util-concurrent-3.0.jar、retrotranslator-runtime-1.2.1.jar;Retrotranslator可以命令行、ant或maven任务、Intellij idea plugin方式运行,下面以ant任务方式运行;
3、参考以下ant脚本(附件),需要修改相应部分:
(注:该脚本不仅转换classes目录下的class文件,而且还转换1.5下发布的jar,如:hibernate-annotations-3.2.1.ga.jar,生成相应的1.4版本。)
4、在jdk1.4环境下(例如tomcat5.0+jdk1.4环境),用1.4版本的jar替换原有的jar,用转换后的class替换原有的class;
5、将backport-util-concurrent-3.0.jar、retrotranslator-runtime-1.2.1.jar添加到WEB-INF/lib目录;
6、启动tomcat,不出问题的话,应该能跑起来!
build.rar
描述: ant脚本
下载
文件名: build.rar
文件大小: 926 字节
下载过的: 文件被下载或查看 11 次
源附件下载:
http://txxm.iteye.com/topics/download/08a2d417-4194-4b26-a38a-fa18ba769356
<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="all" >
<path id="compile.classpath">
<fileset dir="E:\trans\traffic_site\WEB-INF\lib" includes="**/*.jar"/>
<fileset dir="E:\lib_Retrotranslator" includes="*.jar"/>
<pathelement location="E:\jakarta-tomcat-5.0.28\common\lib\servlet-api.jar"/>
</path>
<patternset id="compilered.resources">
<exclude name="**/?*.class"/>
</patternset>
<target name="jdk14">
<taskdef name="retrotranslator" classpathref="compile.classpath"
classname="net.sf.retrotranslator.transformer.RetrotranslatorTask"/>
<!--
<jdk14jar jarname="spring"/>
-->
</target>
<target name="jdk14src" depends="jdk14">
<taskdef name="retrotranslator" classpathref="compile.classpath"
classname="net.sf.retrotranslator.transformer.RetrotranslatorTask"/>
<retrotranslator destdir="E:\classes" verify="true">
<fileset dir="E:\trans\traffic_site/WEB-INF/classes" includes="**/*.class"/>
<classpath location="E:\Java\j2sdk1.4.2\j2sdk1.4.2/jre/lib/rt.jar"/>
<classpath location="E:\Java\j2sdk1.4.2\j2sdk1.4.2/jre/lib/jce.jar"/>
<classpath refid="compile.classpath"/>
</retrotranslator>
</target>
<macrodef name="jdk14jar">
<attribute name="jarname"/>
<sequential>
<fail message="E:\Java\j2sdk1.4.2\j2sdk1.4.2 didn't exist, edit build.properties to reset the Jdk14_home propertity">
<condition>
<not>
<available file="E:\Java\j2sdk1.4.2\j2sdk1.4.2" type="dir"/>
</not>
</condition>
</fail>
<retrotranslator srcjar="E:\trans\traffic_site/WEB-INF/lib/@{jarname}.jar" destjar="E:\trans\traffic_site/WEB-INF/lib/@{jarname}-jdk14.jar" verify="true" failonwarning="Off">
<classpath location="E:\Java\j2sdk1.4.2\j2sdk1.4.2/jre/lib/rt.jar"/>
<classpath refid="compile.classpath"/>
</retrotranslator>
</sequential>
</macrodef>
<target name="resources">
<copy todir="classes">
<fileset dir="E:\trans\traffic_site/WEB-INF/classes">
<patternset refid="compilered.resources"/>
</fileset>
</copy>
</target>
<target name="all" depends="jdk14src,resources">
</target>
</project>
分享到:
相关推荐
本文将深入探讨JDK 1.4、JDK 1.5(也称为Java 5)和JDK 6这三个重要版本的关键特性。 **JDK 1.4** JDK 1.4是Java发展历程中的一个里程碑,发布于2002年。这个版本引入了许多关键的新特性,包括: 1. **异常链**:...
以下是JDK 1.5与JDK 1.4之间的一些主要区别: 1. **泛型(Generics)** - 泛型的引入极大地提高了代码的安全性和类型检查能力。在JDK 1.4中,集合存储的是Object对象,需要强制类型转换,这可能导致运行时错误。而...
8. **NIO.2(New I/O 2)**:虽然NIO(非阻塞I/O)是在JDK1.4引入的,但JDK1.5对其进行了扩展,添加了文件系统操作和文件观察者等功能,使得文件操作更加高效和灵活。 9. **类型安全的异常检查(Checked Exceptions...
Retrotranslator是一个字节码转换器,它可以将使用JDK1.5特性(如泛型、注解、枚举等)编译的Java类转换回JDK1.4兼容的字节码格式。这样,原本在JDK1.5环境下编译的jar包就可以在JDK1.4环境中正常运行了。 使用...
### JDK1.4,1.5,1.6的区别 #### JDK1.5 新特性 JDK1.5,也称为Java 5,是Java发展史上的一个重要里程碑,引入了许多新特性,极大地提高了开发效率和代码质量。这些新特性包括: 1. **泛型** - 泛型是一种在编译...
1. **支持jdk1.2 jdk1.3 jdk1.4 jdk1.5 jdk1.6**:这表明这个工具可以处理这些版本的Java编译后的字节码,意味着它可以打开并反编译这些版本的.class文件,帮助开发者查看对应时期的Java源代码。 2. **支持目录对...
它是JDK 1.4的后续版本,并为JDK 1.6奠定了基础。 **主要特性与更新:** 1. **泛型(Generics)**:泛型是JDK 1.5最显著的新特性之一,它允许在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和重用性...
虽然在JDK 1.4中引入了NIO,但在JDK 1.5中进一步完善,提供了更多的文件系统操作和通道(Channels)功能。 通过阅读和研究这份JDK 1.5的源代码,开发者不仅可以深入了解Java平台的工作原理,还能学习到许多优秀的...
标题中的“利用Retrotranslator将Jdk1.5项目迁移到1.4”是指使用Retrotranslator工具将基于Java 1.5版本的代码库转换为兼容Java 1.4的代码。这是因为某些环境或者旧系统可能只支持早期版本的Java,而新项目可能已经...
9. **NIO.2(New I/O 2)**:虽然JDK 1.4引入了NIO(非阻塞I/O),但JDK 1.5进一步完善,增加了文件系统操作、文件通道、异步I/O等特性。 10. **异常链(Exception Chaining)**:允许一个异常对象引用另一个异常,...
10. **NIO.2(New I/O)**:虽然NIO是在JDK 1.4引入的,但1.5对其进行了增强,提供了更高级别的通道和文件系统操作。 这些知识点构成了JDK 1.5的主要改进,对任何Java开发者来说都具有极高的学习价值。有了这个中文...
10. **NIO.2 (New I/O API)**: 虽然在JDK 7中正式引入,但其前身NIO(Non-blocking I/O)在JDK 1.4发布,JDK 1.5中进一步优化,提供了异步I/O操作。 **安装与配置** JDK 1.5的安装文件为`jdk-1_5_0_22-X86.exe`,...
在使用JDK 1.4绿色版时,只需将解压后的文件夹添加到系统的PATH环境变量中,确保系统可以找到所需的可执行文件,然后就可以开始编写和运行Java程序了。 总结,JDK 1.4绿色免安装版是一个便捷的开发工具,尽管已经有...
本资源集合提供了四个不同版本的JDK:1.4、1.5、1.6和1.7,它们都是免安装版,可以直接使用,极大地简化了开发环境的搭建过程。 1. JDK 1.4:这是Java的一个重要里程碑,发布于2002年,引入了许多新的特性和改进。...
JDK 1.5引入了自动装箱和拆箱机制,使得基本数据类型(如int)与对应的包装类(如Integer)可以无缝转换。这为开发带来了便利,避免了手动装箱和拆箱可能导致的NullPointerException。 三、枚举(Enums) Java 1.5...
这个“JDK转换器(1.5-->1.4)”工具对于那些需要在旧版本JRE上运行的项目非常有用,它能够帮助开发者解决由于版本不兼容带来的问题,使得代码能在较旧的Java环境中顺利执行。使用这个转换器时,开发者需要注意转换...
在JDK 1.4之前,集合类中的元素类型只能在运行时检查,而在JDK 1.5之后,我们可以通过如下方式声明一个只存储字符串的列表: ```java List<String> listOfEmployeeName = new ArrayList(); ``` 这使得插入非字符串...
标题提到的"jdk1.4 json包 6个全"指的是为Java 1.4版本提供的一个完整的JSON处理库,包含了六个相关的jar文件。 1. **commons-collections.jar**:这是Apache Commons Collections库,提供了大量的集合框架扩展,...
描述中提到,使用JDK1.5与Tomcat5.5.9的组合不会出现兼容性问题,这是由于Tomcat5.5.x系列设计时就考虑到了与JDK1.5的兼容性。然而,如果尝试使用更高版本的JDK,可能会遇到一些不兼容的问题,因为每个新的JDK版本都...