1

我有一个使用 Java 1.4 编译的第 3 方 JAR 文件。有没有工具可以让jar文件兼容Java 1.6?(类似于'retrotranslator',但它的反面是什么)。
我尝试反编译类文件并在 1.6 中重新编译它们,但它失败了。


这是问题所在:

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

问候,
-阿什什

4

3 回答 3

5

JDK 1.4 编译的类应该可以在 Java 6 运行时中按原样使用。如果您确实遇到了问题,请描述它。


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


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

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

于 2009-05-13T18:33:19.923 回答
1

我对一些用 Java 1.4.x 编写的遗留代码有另一个问题:作者喜欢枚举并且喜欢将相应的变量命名为“枚举”。他们甚至用它来命名包名。这会阻止在 Java 1.5(或更高版本)下非常成功地编译代码。

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

于 2009-05-13T20:13:33.737 回答
0

可能您已经定义 Eclipse 在使用不推荐使用的方法或类时引发编译器错误?

于 2009-05-13T20:11:45.143 回答