2012-06-10 87 views
0

我正在開發一個基於cloudsim3.0項目的大學項目。我使用jdk 7,而cloudsim使用jdk 1.3。所以我必須改變一切:泛型,for-each循環,等等。一些我從NetBeans中收到的錯誤是:版本在java中不匹配

  • 泛型不-source1.3支持(使用-source7或更高...)
  • 字符串中的開關,-source1.3不支持(使用-source7或更高...) ...

我怎樣才能改變從1.3的JDK版本7? 謝謝

回答

1

通常,您希望在開發高於您部署的Java版本時非常小心。作爲Netbeans使用的JDK中的java編譯器不支持將Java 7源代碼編譯爲1.3字節碼,因此您需要使用另一個編譯器。

我花了一段時間回過頭來研究這個目標爲Java 1.4,並且您可以直接在Eclipse內部使用Eclipse編譯器,或者使用ecj(這是從命令行替換的javac drop),可以在內部使用螞蟻,或者你可以使用Retroweaver積極地將字節碼轉換爲早期版本。

你可能會認爲只是咬牙切齒,並且爲你的項目使用Java 1.3,因爲如果你的代碼出於任何原因不起作用,它將從你需要調查的內容中​​刪除所有這些魔術項目。

1

你的問題有點困惑,但如果你問如何編譯JDK 1.3的Java 7源代碼,這是最有意義的。

答案是,你不能。這些結構(泛型,每個循環,字符串開關)都需要更現代的目標平臺。

從理論上講,你有兩種可能的解決方案:

  • 從您的代碼,所有的Java 5,6,7-主義與-source 1.3 -target 1.3編譯。 (或者下載並安裝舊的Java 1.3 JDK。)

  • 使用Java 7 JVM運行CloudSim3.0代碼。它應該工作,除非它取決於已修復的舊錯誤。

+0

感謝您的回答。第一種可能但很難拒絕使用泛型;第二種是行不通的,因爲代碼版本不支持jdk 7的某些功能。 –