Java:是否有工具使代码(在第三方JAR中)向前兼容(1.4 – 1.6)

我有一个使用Java 1.4编译的第三方JAR文件。 有没有一个工具可以使jar文件与Java 1.6兼容? (像’逆转译器’的东西,但它的反面是什么)。
我尝试反编译类文件并在1.6中重新编译它们但它失败了。


这是问题:

我的项目使用’rsadapter.jar’为5.1,我在Eclipse 2.0 + JDK 1.4中进行了项目设置,它曾经工作正常。 现在,我已经迁移到Java 1.6和Eclipse Ganymede(根据要求),同一个项目(完全相同的设置)开始抱怨’rsadapter.jar’中缺少的类文件。 我也明确地将JAR放在classpath中,但它仍然无法加载类。 然后我将Java Compiler版本更改为1.4并开始工作。

问候,
– 阿希什

JDK 1.4编译的类应该可以在Java 6运行时中使用。 如果您确实遇到了问题,请说明一下。


更新:我只能使用“默认”包中的类型(即不在包中)重现此类。 您尝试在默认包中使用的类是什么? 此外,无论用于编译的JDK版本如何,这都发生在我身上。


更新:好的,经过一些研究,我意识到你永远不能从命名包中引用未命名包中的类型。 有道理,但绝对不是你遇到的。

我可以在JDK 1.4.2_19下编译代码,并在Java 6 Eclipse项目中很好地利用它。 我认为这个问题是您的环境特有的。 在这种情况下,我会备份Eclipse并从头开始重新创建所有内容(JDK安装,工作空间,项目),看看是否可以清除它。

我在Java 1.4.x中编写了一些遗留代码时遇到了另一个问题:作者喜欢枚举,喜欢将相应的变量命名为“enum”。 他们甚至将它用于包名。 这可以防止在Java 1.5(或更高版本)下成功编译代码。

自动更改是一个很大的问题。

您是否已定义Eclipse以在使用已弃用的方法或类时抛出编译器错误?