JDK降级到1.4

1 使用工具Retrotranslator

      http://retrotranslator.sourceforge.net/

    下载工具Retrotranslator-1.2.9-bin.zip,将其解压到E:\retrotranslator

 

 

2 工具介绍

   Retrotranslator是一个Java字节码转换工具。它能够把用JDK1.5编译的Java Class转换成可运行在JVM1.4。支持的Java 5.0特性包括:泛型、注释、枚举、可变参数个数、自动装箱/拆箱、增强式的for循环、静态导入、并行工具(Concurrency Utilities)、增强的collections框架。
但是Retrotranslator只支持Java 5.0新特性,不支持Java 5.0里新的API

 

3 工具的一些限制

  • The Java 5.0 memory model is not fully supported even with the syncvolatile and syncfinal options if the fields are being accessed via reflection.
  • Only the classes, methods, and fields listed above should work and the other features, like formatted input, are not supported.
  • The Java 1.4 compilers and applications performing bean introspection may fail to work correctly with covariant return types.
  • The backported implementation of the Java 5.0 API is not interoperable with the original implementation.
  • Reflection-based tools may be unable to discover the backported implementation of the Java 5.0 API.
  • The Java 5.0 reflection methods may return incomplete information for dynamically generated classes.
  • The constants inlined by a compiler and access modifiers are ignored during the verification.

4 转换内容分类

    需要转换的内容分为2种:jar包和classes文件的文件

 

5 转换方式

 

  5.1 命令行方式

 

   5.1.1 降级class文件

 

         将含有jdk1.5编译的class文件放到e:\retrotranslator\classes下,同时新建文件夹classes14,用于存放重新编译生成的1.4版本的class文件。

  cmd进入到e:\retrotranslator下,然后执行

    java -jar retrotranslator-transformer-1.1.9.jar -srcdir classes -destdir classes14

   

   执行结果如下:

     Processing 21 file(s) from classes to class14.
     Transformed 14 file(s).

 

  5.1.2 降级jar包

 

 

 

      将含有jdk1.5版本class的jar包,放到e:\retrotranslator\lib下,同时新建lib14文件夹,用于存放新生成的jar包

       cmd进入到e:\retrotranslator下,然后执行

    java -jar retrotranslator-transformer-1.1.9.jar -srcjar lib/struts2-core-2.1.8.1.jar -destjar lib14/struts2-core-2.1.8.1-j14.jar

 

   执行结果如下

   Processing 600 file(s) from lib\struts2-core-2.1.8.1.jar to lib14\struts2-core-2.1.8.1-j14.jar.
   Transformed 413 file(s).

  注意:

    转换jar包,一次只能转换一个,class文件可以批量转换

5.2 其它转换方式

   5.2.1 ant方式编译

   编写build.xml文件,用ant编译,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<project default="translate" name="pluto-project" basedir=".">

<target name="translate"> 

    <path id="classpath">

        <fileset dir="项目文件的lib文件夹所在位置" includes="**/*.jar"/>

    </path>

 

   <taskdef name="retrotranslator"  

      classname="net.sf.retrotranslator.transformer.RetrotranslatorTask" />  

   <retrotranslator  

      destdir="ant编译后生成文件的目录" verify="true"    

      srcdir="项目编译后classes文件夹所在目录">  

      <!-- 项目中用到的包或类 -->      

      <classpath refid="classpath"/>    

      <!-- 1.4JDK的运行时包 -->  

      <classpath location="jdk1.4.2安装目录/jre/lib/rt.jar"/>  

   </retrotranslator>  

</target>  

</project>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值