java 1.5到1.4

时间:2008-10-07 01:10:46

标签: java

将用java 1.5编写的现有jar(无源代码)转换为java 1.4.x的最佳方法是什么?

6 个答案:

答案 0 :(得分:12)

看看Retroweaver。它将转换类或jar,以便可以使用1.4 JRE运行它。根据所使用的1.5功能,您不需要任何额外的retroweaver运行时。

Retroweaver使用字节码增强功能。这听起来很神秘,但确实有效。

答案 1 :(得分:3)

retrotranslator是另一种类似于retroweaver的选项

答案 2 :(得分:1)

你可以反编译它,然后重新编译。您可能需要手动修复不兼容问题。这是java decompilers上的一个主题。

答案 3 :(得分:0)

我的直觉是反编译jar,然后重新编译为1.4。

如果反编译代码中没有1.5个特定的API调用,那应该可以正常工作。 如果有,您将需要重新设计这些部分以使用早期的Java版本。

答案 4 :(得分:0)

除了反编译之外,你可能还需要在源代码中重构一些东西 - 枚举,泛型(我不认为泛型会出现在反编译代码中,但这可能意味着你会遗漏一些演员),拳击/拆箱等。

答案 5 :(得分:0)

正如Rodeoclown所说, 1)解压缩JAR

2)使用像jad(http://www.kpdus.com/jad.html)这样的反编译器 jad -d src -f -ff -s .java -space -t4 ***。class

3)从生成的源文件中,使用JDK 1.4的javac编译它们。

4)如果1.4编译器工作正常,重新绑定到新的jar

5)如果1.4编译器有问题,则需要使用
retroweaver(http://retroweaver.sourceforge.net/index.html)。
这可能在某些情况下有效但是如果类期望JVM发生变化,那么你就处于困境。如果类使用新的线程工具,则可以使用http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html中的JDK 1.4版本的util.concurrent。

祝你好运!