Retrotranslator是一个可以把JDK1.5(6)下编译的类(或包)转译成JDK1.4下可以识别的类(包)的工具。

为现在还用JDK1.4呢?我想无非是现在的大部分Java Web应用是一两年(甚至两三年前)搭的,生命周期还得有个几年吧。另外,是不是已经买了weblogic8(仅支持JDK1.4及以下)的企业为省钱,不愿上weblogic9呢?不过刚才查了下报价:Weblogic8.1 21W,而Weblogic 9 才7w?不晓得新东西怎么会便宜呢?

既然必须用JDK1.4,那些JDK1.5下发布的好的开源包岂不是不能用了?呵呵,不会的,一切因为有了Retrotranslator:)

闲言少表,说说咋使Retrotranslator

(以下摘自http://retrotranslator.sourceforge.net/#commandline,中文自个翻的,献丑了)

How to use Retrotranslator from the command line?

如何在命令行下使用Retrotranslator

1.Download and unzip the binary distribution file Retrotranslator-n.n.n-bin.zip, where n.n.n is the latest Retrotranslator release number.

下载并解压缩二进制发布的文件:Retrotranslator-n.n.n-bin.zip,n.n.n 是指最新发布的版本号

2.Compile your classes with Java 5.0 or Java 6 and put them into some directory, e.g. myclasses.

把你在JDK5或6下编译的类放在同一目录下,例如:myclasses

3.Go to the unzipped directory and execute:

java -jar retrotranslator-transformer-n.n.n.jar -srcdir myclasses

Use appropriate options to verify the result and for troubleshooting, e.g. -verify, -classpath, -advanced, and -smart.

到解压的目录,执行

java -jar retrotranslator-transformer-n.n.n.jar -srcdir myclasses

使用合适的选项来保证执行正确或查找解决问题的方法

4.Put retrotranslator-runtime-n.n.n.jar and backport-util-concurrent-n.n.jar into the classpath of your application if you use the Java 5.0 API.

将解压出来的retrotranslator-runtime-n.n.n.jar and backport-util-concurrent-n.n.jar两个包放在你工程的类路径中

5.Run or debug the application as usual on Java 1.4.

运行或调试应用如同在JDK1.4环境下吧。

The command line syntax:

java -jar retrotranslator-transformer-n.n.n.jar <options>

or

java -cp retrotranslator-transformer-n.n.n.jar net.sf.retrotranslator.transformer.Retrotranslator <options>

命令行语法部分不翻了,下面举个转包的实例:

  1. java -jar ./Retrotranslator-1.2.7-bin/retrotranslator-transformer-1.2.7.jar -advanced -srcjar ./srcJar/jodd.jar -destjar ./destJar/jodd-jdk1.4-305.jar

1.先找一个目录做为工作目录,把retrotranslator-transformer-1.2.7.jar放在 ./Retrotranslator-1.2.7-bin下

-jar ./Retrotranslator-1.2.7-bin/retrotranslator-transformer-1.2.7.jar //--指明工具包位置

2.把待转译的包jodd.jar放在 ./srcJar目录下;

-advanced   //in order to avoid compatibility issues当需要避免兼容性问题时需加此参数

-srcjar ./srcJar/jodd.jar   //--指明待转译的包位置

3.把上面的命令复制到当前目录下的一个文本文档里,F2成cmd文件双击运行(或在命令行中切换至当前目录再运行上面的命令);

4.运行完毕,在./destJar下已经生成了你想要的jodd-jdk1.4-305.jar;

-destjar ./destJar/jodd-jdk1.4-305.jar  //--指明转译生成的包位置

5.把这个热气腾腾刚出锅的jodd-jdk1.4-305.jar和解压缩得到的backport-util-concurrent-3.1.jarretrotranslator-runtime-1.2.7.jar都放在Web应用中的lib目录下;

6.OK,这样我们就能在JDK1.4下使用JODD了。

JODD是什么,下一章再讲吧:)

Retrotranslator使用简介(JDK1.5->1.4)的更多相关文章

  1. JDK1.8之ConcurrentHashMap

    目录 简介 JDK1.7 JDK1.8 重要属性 Node类 ForwardingNode类 原子操作和Unsafe类 重要方法 初始化表操作(initTable) 插入键值对(put和putVal) ...

  2. java集合系列——Map之HashMap介绍(八)

    1.HashMap的简介 (JDK1.7.0_79版本) HashMap是基于哈希表的Map实现的的,一个Key对应一个Value,允许使用null键和null值,不保证映射的顺序,特别是它不保证该顺 ...

  3. java集合系列——List集合之Vector介绍(四)

    1. Vector的简介 JDK1.7.0_79版本 Vector 类可以实现可增长的对象数组.与数组一样,它包含可以使用整数索引进行访问的组件.但是,Vector 的大小可以根据需要增大或缩小,以适 ...

  4. JAVA:ssm框架搭建

    文章来源:http://www.cnblogs.com/hello-tl/p/8328071.html 环境简介 : jdk1.7.0_25/jdk1.8.0_31  tomcat-7.0.81  m ...

  5. JAVA NIO学习笔记1 - 架构简介

    最近项目中遇到不少NIO相关知识,之前对这块接触得较少,算是我的一个盲区,打算花点时间学习,简单做一点个人学习总结. 简介 NIO(New IO)是JDK1.4以后推出的全新IO API,相比传统IO ...

  6. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

  7. Nutch搜索引擎(第1期)_ Nutch简介及安装

    1.Nutch简介 Nutch是一个由Java实现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行查询的一 ...

  8. 【DWR系列01】-DWR简介及入门例子

    .literal { background-color: #f2f2f2; border: 1px solid #cccccc; padding: 1px 3px 0; white-space: no ...

  9. 1.Struts2简介和Struts2开发环境搭建

    一.Struts2简介: 1.什么是Struts2? 著名的SSH三大框架分别为:表现层(Struts).业务逻辑层(Spring),持久化层(Hibernate). Struts2是在WebWork ...

随机推荐

  1. Skiing POJ 3037 很奇怪的最短路问题

    Skiing POJ 3037 很奇怪的最短路问题 题意 题意:你在一个R*C网格的左上角,现在问你从左上角走到右下角需要的最少时间.其中网格中的任意两点的时间花费可以计算出来. 解题思路 这个需要发 ...

  2. 嗨翻C语言--这里没有蠢问题(一)

    问:card_name[0]是什么意思?答:它是用户输入的第一个字符.如果用户输入了10,那么card_name[0]就将是1.问:总是得用/*和*/写注释吗?答:如果你的编译器支持C99标准,就可以 ...

  3. [HDU 3712] Fiolki (带边权并查集+启发式合并)

    [HDU 3712] Fiolki (带边权并查集+启发式合并) 题面 化学家吉丽想要配置一种神奇的药水来拯救世界. 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号).初始时,第i个瓶内装着g[ ...

  4. HNUSTOJ-1521 塔防游戏

    1521: 塔防游戏 时间限制: 1 Sec  内存限制: 128 MB提交: 117  解决: 38[提交][状态][讨论版] 题目描述 小明最近迷上了塔防游戏,塔防游戏的规则就是在地图上建炮塔,用 ...

  5. python学习第五十一天os模块的用法

    os模块故名思意就是操作系统模块,该模块提供很多容许你的程序与操作系统直接交互的功能. 1,得到当前工作目录  os.getcwd() 2, 返回指定目录下的所有文件和目录名 os.listdir() ...

  6. Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” a...

    报错: 从错误信息来看,似乎需要通过管理员身份来接受许可协议,于是试着从这个角度google,终于在这里找到了解决方法: 1.打开终端,输入  sudo xcodebuild -license 2.终 ...

  7. python-xss攻击和单例模式

    1.python中单例模式 class Foo: instance = None def __new__(cls, *args, **kwargs): if not Foo.instance: Foo ...

  8. 对数据集做标准化处理的几种方法——基于R语言

    数据集——iris(R语言自带鸢尾花包) 一.scale函数 scale函数默认的是对制定数据做均值为0,标准差为1的标准化.它的两个参数center和scale: 1)center和scale默认为 ...

  9. fpga新建nios

    [FPGA]基于Qsys的第一个Nios II系统设计 (2013-12-12 21:50:08) 转载▼ 标签: fpga niosii qsys helloword quartusii 分类: 嵌 ...

  10. 组件通信 Provide&&inject

    在父组件中利用Provide 注入数据,在所有的子组件都可以拿到这个数据 可以在vue 中用来刷新页面 <!DOCTYPE html> <html lang="en&quo ...