`
江南白衣
  • 浏览: 550112 次
  • 来自: 广州
社区版块
存档分类
最新评论

Retrotranslator--将JDK5.0项目完全转换为JDK1.4 字节码的恩物

阅读更多
作者:江南白衣     

    因为Retrotranslator的出现,SpringSide 1.0终于放心升到JDK5.0,并保证仍然100%可以运行在JDK1.4的服务器上。

    不能随意更改运行环境JDK的历史项目,客户真金白银买了不支持JDK5的Weblogic8.1的项目,一般只能看着JDK5的annotation、泛型和EJB3干咽口水,所以上帝說要有光,我们有了这个恩物。

    和以前推荐的Retroweaver一样,大家直接用JDK5开发,如果需要部署到JDK1.4的运行环境,就通过asm把Class转到JDK1.4的字节码。
   但它不仅支持JDK5的语法,还支持JDK5的新增API。
   下午试验了一下,把用了大量JDK5特征的EasyMock移植到JDK1.4,一行代码未改就通过了。正是由于这点,SpringSide终于下定决心升级,毕竟使用JDK5的框架越来越多,如果困守JDK1.4必然受到越来越多局限。既然现在有了完全兼容的保证,就升了吧。 本来这么一样东西应该是由Sun发行的,Java的开源社区强悍得吓人。

   Retrotranslator的用法很简单,可以用命令行、Ant和IDEA插件自动转换,http://retrotranslator.sf.net 上讲得很清楚,可以转换Jar,也可以转换Class目录。
   比较特别的是有个Verify选项,能确保你没有用到它暂时还不支持的JDK5 API(记得Classpath里要加入JDK1.4的rt.jar)。在SpringSide的build.xml里已加入了这个verfiy  target,确保代码仍然可以在JDK1.4上运行。(实践把springside部署回Tomcat5.0+JDK1.4环境,除了Spring cgilib式的AOP Proxy与泛型的反射函数有冲突外需进一步研究外,其它一切工作正常)

分享到:
评论

相关推荐

    JDK 5.0.zip

    3. **自动装箱与拆箱**:JDK 5.0中,原始类型(如int)与对应的包装类(如Integer)之间可以自动进行装箱(将原始类型转换为对象)和拆箱(将对象转换为原始类型)操作,简化了代码编写。 4. **可变参数(Varargs)...

    JDK5.0_下载-安装-配置

    2. **编译源代码**:打开命令行,确保已经正确配置了JDK,然后在源代码所在目录下运行`javac HelloWorld.java`,这将生成一个`HelloWorld.class`字节码文件。 3. **运行程序**:运行`java HelloWorld`,控制台将显示...

    Retrotranslator-1.2.9-bin.zip

    它首先读取由JDK1.6或1.5编译的.class文件,然后将这些现代字节码转换为与JDK1.4兼容的格式。这个过程涉及到对新特性如泛型、枚举、注解等的处理,因为这些特性在JDK1.4中是不存在的。Retrotranslator会将它们转换为...

    修改版json-lib-2.4-jdk14与json-lib-2.4-jdk13 支持JDK1.4与1.3与1.5

    官网发布的json-lib-2.4-jdk13.jar,在JDK1.4中无法使用,经过不懈努力,知道问题出在哪里了,分享下: debug那个json-lib源码,最后错误定位在这个方法 protected static void removeInstance( Object instance )...

    Java字节码转换工具—Retrotranslator

    Java字节码转换工具Retrotranslator是一个用于解决软件兼容性问题的实用工具,尤其是在Java版本升级带来的不兼容性上。随着Java技术的不断迭代,新版本的特性常常不能在旧版本的JDK环境下运行,而Retrotranslator的...

    良葛格JDK5.0学习笔记

    自动将int转换为Integer对象。 3. **枚举类型**:JDK5.0之前,枚举通常通过常量类来实现,而JDK5.0引入了内置的枚举类型,提供了更强大的功能和更好的类型安全。枚举可以有方法、构造函数,甚至可以实现接口,例如 ...

    jdk-8u60-windows-i586-JDK1.8-32位

    jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586

    良葛格java jdk 5.0学习笔记

    良葛格java jdk 5.0学习笔记,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip。

    jdk5.0 tomcat5.0配置全攻略

    ### JDK 5.0 和 Tomcat 5.0 配置全攻略 #### 环境搭建背景 对于初入Java领域的新手来说,环境配置往往是一个不小的挑战。本篇文章旨在帮助那些在Java学习过程中遇到环境配置问题的朋友,提供一份详尽的JDK 5.0 和 ...

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

    需要注意的是,尽管Retrotranslator能够处理大部分的字节码转换,但并不是所有JDK1.5的新特性都能被完全还原为JDK1.4兼容的形式。例如,对于依赖于JDK1.5以上版本库的项目,可能还需要寻找这些库的旧版本或者寻找...

    (Java 2 SDK)JDK 5.0 的源代码

    JDK 5.0简化了基本类型与对应的包装器类型之间的转换,引入了自动装箱和拆箱机制。这意味着开发者不再需要手动进行如Integer i = new Integer(5); 这样的转换,可以直接写作Integer i = 5;。 四、变量注解...

    良葛格Java JDK 5.0学习笔记[可打印]

    在JDK 5.0中,你可以为局部变量提供一个初始值,即使这个变量在声明时没有被初始化,但必须确保它在使用前被赋予一个值。 7. **静态导入(Static Import)** 静态导入允许将类的静态成员引入到当前作用域,这样...

    良葛格Java JDK 5.0学习笔记

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。..."良葛格Java JDK 5.0学习笔记"这份资料应该会详细解释这些概念,为初学者提供宝贵的参考资料。

    jdk5.0新特性

    ### JDK 5.0新特性详解 #### 一、自动装箱与自动拆箱 在JDK 5.0中,引入了一个非常实用的功能——自动装箱和自动拆箱,这极大地方便了开发者在处理基本数据类型和它们对应的封装类之间的转换。以前,我们可能需要...

    jdk 5.0 ban

    1. **泛型(Generics)**:JDK 5.0引入了泛型,允许开发者在类、接口和方法中定义类型参数,增强了类型安全,减少了强制类型转换,使代码更易读、更少出错。例如,ArrayList表示一个只存储字符串的列表。 2. **枚举...

    JDK 5.0中文版API

    这篇文档将详细解析JDK 5.0中文版API,帮助初学者和有经验的开发者更好地理解和利用这一强大的资源。 ### 类库概述 JDK 5.0的类库包括了基础类库、集合框架、I/O流、网络编程、多线程、异常处理、反射、泛型等多个...

    良葛格————JavaJDK5.0学习笔记PDF

    良葛格————JavaJDK5.0学良葛格————JavaJDK5.0学习笔记PDF.rar习笔记PDF.rar良葛格良葛格————JavaJDK5.0学习笔记PDF.rar————JavaJDK5.0学习笔记PDF.rar良葛格————JavaJDK5.0学习笔记PDF.rar良...

    java-jdk1.8-8u361-all-jdk-win-linux

    java-jdk1.8-8u361-all-jdk-win-linux 该压缩包中包含jdk1.8-8u361下windows版本和linux版本,其包含快速安装包和对应的jdk压缩包版本,具体内容如下: jdk-8u361-linux-aarch64.rpm jdk-8u361-linux-i586.rpm jdk-8...

    ibm JDK5.0 fro linux

    ibm JDK5.0 fro linux,这个东西很难下的。

Global site tag (gtag.js) - Google Analytics