`
hougbin
  • 浏览: 502583 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JDK降级到1.4

    博客分类:
  • JAVA
阅读更多

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>

分享到:
评论

相关推荐

    将1.5版本编译的jar包降级转编译为1.4版本的jar包

    总之,将1.5版本的jar包降级到1.4版本是一个涉及多个步骤的过程,包括安装不同版本的JDK、使用降级工具、调整构建配置、手动修改代码以及严格的测试验证。这个过程虽然复杂,但它确保了软件能够在旧版本的Java环境中...

    jdk1.5环境下编译的jar包在JDK1.4环境下运行

    这里我们讨论的焦点是“JDK1.5环境下编译的jar包在JDK1.4环境下运行”所遇到的问题,具体表现为“Unsupported major.minor version 49.0”的错误。这个错误的根源在于Java字节码版本不兼容。Java字节码版本与JDK版本...

    利用Retrotranslator将Jdk1.5项目迁移到1.4

    标题中的“利用Retrotranslator将Jdk1.5项目迁移到1.4”是指使用Retrotranslator工具将基于Java 1.5版本的代码库转换为兼容Java 1.4的代码。这是因为某些环境或者旧系统可能只支持早期版本的Java,而新项目可能已经...

    Retrotranslator-1.2.9-bin.zip

    Retrotranslator是一个强大的工具,主要用于将Java应用程序从较新的JDK版本(如JDK1.6或JDK1.5)回译到较旧的JDK1.4版本。这个工具对于那些依赖于JDK1.4环境但又希望利用新版本JDK中的某些功能或者优化的开发者来说...

    jmeter配置、安装手册

    解决方法是要么将JMeter降级到与BadBoy相兼容的版本,要么升级BadBoy到最新版本以支持当前JMeter的版本。 总的来说,JMeter是一个强大的性能测试工具,适用于各种测试场景,但使用时需要关注版本兼容性和正确的环境...

    用Java连接sqlserver数据库时候几个jar包的区别分析

    然而,确保你的开发环境满足其JRE版本的要求,否则需要降级到sqljdbc.jar或者考虑使用其他JDBC驱动,如开源的jTDS驱动。在选择驱动时,还应考虑应用的具体需求,如性能、稳定性和社区支持等因素。

    SpringCloudAlibaba (大集合组件解析)PDF版

    - **路由规则:** Gateway 支持动态配置路由规则,可以根据路径、查询参数等条件将请求转发到不同的微服务。 - **过滤器链:** 支持自定义过滤器,可用于实现认证、限流等功能。 #### 七、SkyWalking:服务网格观测...

Global site tag (gtag.js) - Google Analytics