2012-08-15 72 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/

相關問題