2012-08-15 71 views
1

在我的工作计算机上,我安装了装有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。不受支持major.minor版本.51和在Java 1.6上运行java 1.7代码1.6

有没有办法,我可以把我的1.7的代码,并得到它的建立和在我的Mac OS X 10.6在运行了JDK 1.6?或者有办法让我的代码回到我的JDK 1.7机器并将兼容性降级到1.6?基本上我需要在我的工作电脑和家用电脑上运行代码。

+0

你是如何建设它? Netbeans,Eclipse,Hand – MadProgrammer 2012-08-15 04:13:26

+0

我通过Netbeans构建它 – user785179 2012-08-15 04:15:00

+1

只需在系统上安装[openJdk7](http://code.google.com/p/openjdk-osx-build/)。它在我的MacBook Pro上,它像一个魅力运行。 – 2012-08-15 04:21:27

回答

2

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

在NetBeans中,右键单击该项目节点,并选择“属性”。从属性对话框中选择来源。在该对话框的底部,您应该看到“源代码/二进制格式”,从下拉菜单中选择“JDK 6”

选择“库”。在对话框的顶部,您应该看到“Java平台”,从下拉菜单中,您将需要选择“JDK 1.6”

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

现在,你应该能够找到它

UPDATE

从提出的意见“苏”,你可以用简单的改变“源代码/二进制格式”选项脱身1.6

+0

谢谢!修改项目的属性并将源/二进制格式设置为1.6!我认为当我在JDK 1.7中运行相同的1.6代码时,这应该不会给我带来麻烦?最糟糕的情况是,我可以在工作中卸载JDK 1.7并恢复到JDK 1.6。 – user785179 2012-08-15 04:30:19

+0

1.7应该向后兼容1.6二进制文件,而不是相反;) - 应该提到,你将无法使用1.7功能或API增强功能,你需要坚持1.6 API – MadProgrammer 2012-08-15 04:31:47

3

除非你使用新的1.7语法/库,你应该没有问题,构建教学班,JDK 1.6

您还可以生成1.6兼容的.class 1.7编译器,像运行

javac -source 1.6 -target 1.6 MyClass.java 

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

所以答案是,这两种方式可能适合你。


编辑:

纠正了我的答案。

-source必须是1.6

感谢司徒商标指点出来!

+0

这是否会将我的1.7代码降级到1.6,以便我可以在使用JDK 1.6的Mac OS X 10.6上运行代码?我希望Java源代码在我的Windows和Mac机器上工作,并能够在两台机器上构建。 – user785179 2012-08-15 04:25:51

+2

不,不会工作。您不能使用Java 7功能和目标6,因为7的语言功能具有库依赖性。您必须将源和目标都设置为1.6。 – 2012-08-15 04:26:52

3

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

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

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

相关问题