【问题标题】:unsupported major.minor version .51 and running java 1.7 code on java 1.6不支持的 major.minor 版本 .51 并在 java 1.6 上运行 java 1.7 代码
【发布时间】:2012-08-15 12:31:43
【问题描述】:

在我的工作计算机上,我安装了带有 JDK 1.7 的 Windows 7 x64。我在 Netbeans 中创建了一个项目,一切顺利。然后,我将我的项目复制到运行 Mac OS X 10.6 的家用计算机上,该计算机运行 JDK 1.6。构建失败,并显示有关不受支持的 major.minor 版本 .51 的错误消息。谷歌搜索得出结论,这是因为 JDK 版本不匹配。 Oracle 不允许在 Mac OS X 10.6 上安装 JDK 1.7,所以我在我的 Mac 上坚持使用 JDK 1.6。

有什么方法可以让我的 1.7 代码在运行 JDK 1.6 的 Mac OS X 10.6 上构建和运行?或者有什么办法可以将我的代码带回我的 JDK 1.7 机器并将兼容性降级到 1.6?基本上我需要代码在我的工作计算机和家用计算机上运行。

【问题讨论】:

  • 你是如何构建它的? Netbeans、Eclipse、Hand
  • 我正在通过 Netbeans 构建它
  • 只需在您的系统上安装openJdk7。在我的 macbook pro 上做的,它运行起来就像一个魅力。
  • 刚得到消息:Jdk 7u6 is available for MacOS!快乐下载!

标签: java


【解决方案1】:

在 NetBeans 中打开项目属性并将平台和语言级别设置为 6(或 1.6)。然后清理并构建。但是,您不能使用任何 Java 7 功能。您应该能够在 Windows 上安装现有的 Java 7 来执行此操作;您不需要安装 Java 6。

或者,您可以在运行 10.6 的 Mac 上安装非官方的 OpenJDK 7 版本。在这里寻找下载:

http://code.google.com/p/openjdk-osx-build/

【讨论】:

    【解决方案2】:

    除非您使用新的 1.7 语法/库,否则使用 JDK 1.6 构建类应该没有问题

    您还可以使用 1.7 编译器生成 1.6 兼容的 .class,例如运行

    javac -source 1.6 -target 1.6 MyClass.java
    

    或者如果您使用的是 Eclipse,您可以在设置对话框中进行设置。

    所以答案是,这两种方法都适合你。


    编辑:

    更正了我的答案。

    -source 必须是 1.6

    感谢 Stuart Marks 指出!

    【讨论】:

    • 这会将我的 1.7 代码降级为 1.6,以便我可以在使用 JDK 1.6 的 Mac OS X 10.6 上运行代码吗?我希望 Java 源代码能够在我的 Windows 和 Mac 机器上运行,并且能够在这两台机器上构建。
    • 不,行不通。你不能使用 Java 7 的特性和目标 6,因为 7 的语言特性有库依赖。您必须将源和目标都设置为 1.6。
    【解决方案3】:

    这将要求您在 Windows 机器上安装 Java 1.6。 1.7 和 1.6 之间存在语法不兼容(以及一些 API 差异)。

    在 Netbeans 中,右键单击项目节点并选择“属性”。从属性对话框中,选择源。在对话框底部,您应该会看到“Source/Binary Format”,从下拉列表中选择“JDK 6”

    选择“库”。在对话框顶部,您应该看到“Java Platform”,从下拉列表中,您需要选择“JDK 1.6”

    如果找不到,请点击“管理平台”。单击“添加平台”,浏览到安装 Java 6 的位置(通常在 C:\Program Files\Java 中)并选择它。点击“完成”。

    现在应该可以找到了

    更新

    从“su-”制作的 cmets 中,您只需将“Source/Binary Format”选项更改为 1.6 即可摆脱困境

    【讨论】:

    • 谢谢!修改项目的属性并将源/二进制格式设置为 1.6 有效!我认为当我在 JDK 1.7 中运行相同的 1.6 代码时,这应该不会给我带来麻烦?最坏的情况,我可以在工作中卸载 JDK 1.7 并恢复到 JDK 1.6。
    • 1.7 应该向后兼容 1.6 二进制文件,而不是相反;) - 应该提到,您将无法使用 1.7 功能或 API 增强功能,您需要坚持使用 1.6 API
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    相关资源
    最近更新 更多