浏览 6076 次
锁定老帖子 主题:jdk1.5的类转换成jdk1.4的类文件
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-13
具体请看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> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-13
疑问:JDK5编译的所有class都不能在jdk4上运行么?
|
|
返回顶楼 | |
发表时间:2007-10-13
默认是不可以的
因为class文件头上有版本号 5的更高一些,所以JDK4是不能运行的 不过可以通过JDK5的编译开关 强制编译成1.4的 额外加一句,即使使用强制编译成1.4也有可能运行不了 比如你调用了JDK1.5的某些新类或者新方法,就有可能运行不了 因为1.4上没有相应的类或者方法 |
|
返回顶楼 | |
发表时间:2007-10-14
如果使用eclipse的话,可以编译成你要的版本,不过只能向下兼容,就是1.5的可以编译成1.4的,不能编译成1.6的。
如果已经编译好的类的话,就没有办法了,只有使用反编译,然后重新编译java文件,这里是直接转换class文件。 |
|
返回顶楼 | |
发表时间:2008-07-23
哈哈哈哈~~~~没想到在你这里找到我想要的了...官方网站没办法下载...郁闷~~~~~
|
|
返回顶楼 | |
发表时间:2008-07-24
你好像把这个搞复杂了。Struts2默认好像就附带这个包。
先把在jdk5下开发的类打包成jar文件,然后在命令行就可以直接转化为jdk1.4版本的jar。 这个以前用过,试过可以。但不太感用,只要是怕有bug,然后调试不太方便。 |
|
返回顶楼 | |