3

我有一个在 1.7 版本的 java 中运行良好的 code.jar,但是当使用另一台带有 1.6 版本的 linux 的计算机时,它给了我一个错误,我怎样才能在 1.6 版本中运行它?

4

5 回答 5

3

调用时使用交叉编译选项javac

如果仅按照-target大多数其他回复中的建议指定选项,则 1.7 SDK 将发出有关-bootclasspath. 该选项需要一个rt.jar目标 JRE 版本(注意不是JDK)。它允许编译器检查引用核心 Java SE 的代码的类、方法和属性是否实际存在于rt.jar. 这对于确保兼容性非常重要。

于 2012-08-22T23:58:55.553 回答
1

如果代码未使用较旧的 Java 兼容性标志编译,您将无法在 1.6 上运行它。

于 2012-08-22T20:45:20.303 回答
1

在 eclipse 中使用 Java 6 构建项目,您需要下载 Java 1.6 JRE,然后让 eclipse 指向 1.6 JRE,请参阅:http://www.cleartoolkit.com/dokuwiki/doku.php?id=clearwiki:20。 cleardatabuilder:01.setup:01.prerequisites

现在右键单击您的项目 -> 属性,单击 Java 编译器,取消选中“启用项目特定设置”,单击“配置工作区设置”,然后选择 1.6 作为您的编译器合规级别。

做“事情”来再次导出你的项目,新的 jar 应该可以工作。

希望这可以帮助。

于 2012-08-22T23:11:14.527 回答
0

我不认为你可以用较低版本运行更高版本的类。

另一种方法可能是在将目标版本编译为 1.6 时。

例子:

javac yourFile.java -target 1.6
于 2012-08-22T20:44:45.893 回答
0

我在 Eclipse 中找到了解决方案!

如果您转到您的项目并右键单击以访问属性,则会出现一个名为 Java Compiler 的选项卡。如果启用项目特定属性并取消选中 JDK 合规性下的复选框,则可以将源兼容性和 .class 文件兼容性更改为 1.6。

这应该可以解决您的问题,并且生成的 .jar 文件应该可以在两个设备上运行。我通过将文件从 1.8 移动到 1.7 并在我的具有 OpenJDK 1.7 的 Raspberry Pi 上进行测试来测试这一点,效果很好。我希望这有帮助。

于 2016-04-09T14:42:25.063 回答