jdk1.5的类转换成jdk1.4的类文件

  搞了一个晚上终于搞出来了,把jdk1.5环境下的类文件编译成1.4环境下的类文件,我使用的是Retrotranslator-1.2.2。使用Ant编译依赖三个jar文件,retrotranslator-transformer-1.2.2.jar,retrotranslator-runtime-1.2.2.jar,backport-util-concurrent-3.0.jar。
  具体请看Ant配置,如下:
  首先是路径配置,文件名为:build-dist.properties
#jdk1.4路径
jdk14_home=C:/j2sdk1.4.2_05

#当前路径
Retrotranslator.dir = .
#1.4的class文件路径
Retrotranslator.src.dir = ${Retrotranslator.dir}/src
#jar文件路径
Retrotranslator.jar.dir = ${Retrotranslator.dir}/jar
#生成的jar文件或者1.4的class文件的路径
Retrotranslator.dist.dir = ${Retrotranslator.dir}/dist

   然后是build文件,文件名为:buildRetrotranslator.xml
   配置好Ant环境,使用命令ant -f buildRetrotranslator.xml [任务名,不加则为默认],如果文件名为build.xml,则使用ant [任务名,不加则为默认]。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Retrotranslator" default="jdk14jar">

	<property file="build-dist.properties"/> 
	
	<path id="compile.classpath">
		<fileset dir="${Retrotranslator.dir}">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	
	<!-- 初始化任务 -->
	<target name="init">
		<mkdir dir="${Retrotranslator.dist.dir}"/>
		<taskdef name="retrotranslator" classpathref="compile.classpath"
		             classname="net.sf.retrotranslator.transformer.RetrotranslatorTask" />
	</target>
	
	<!-- 把jdk1.5的类文件编译成jdk1.4的class文件 -->
	<target name="jdk14src" depends="init">
	    <retrotranslator destdir="${Retrotranslator.dist.dir}" verify="true">
	     	<!-- 包含class文件,并换成1.4的class文件-->
	    	<fileset dir="${Retrotranslator.src.dir}" includes="**/*.class"/>
	    	<!-- 包含jar文件,直接转换成1.4的class文件-->
        <jarfileset dir="${Retrotranslator.src.dir}" includes="**/*.jar"/>
        <classpath location="${jdk14_home}/jre/lib/rt.jar"/>
        <classpath refid="compile.classpath"/>
	    </retrotranslator>
	</target>
	
	<target name="jdk14jar" depends="init">
		<!-- 直接把jar文件转换成1.4的jar文件-->
		<retrotranslator srcjar="${Retrotranslator.jar.dir}/jasperreports-1.2.5.jar"
			destjar="${Retrotranslator.dist.dir}/jasperreports-1.2.5-jdk14-2.jar" verify="true">
			<classpath location="${jdk14_home}/jre/lib/rt.jar"/>
			<classpath refid="compile.classpath" />
		</retrotranslator>
	</target>
</project>

你可能感兴趣的:(eclipse,C++,c,xml,ant)