2012-01-19 56 views
3

在Eclipse,當我創建新的Java項目時,我看到類似的選項:在Eclipse中創建新Java項目時使用哪個JRE版本以及哪些缺點?

enter image description here

現在我想知道,是什麼時候我出口的jar文件的用戶將能夠使用考慮最安全的選擇用它。如果選擇顯示的選項,這是否意味着如果某人擁有JRE 1.6,他將無法運行該jar文件,或者它是否向後兼容?

這樣我的項目,並沒有特別的依賴關係1.7。

回答

5

這是很廣泛的問題,要使用的JRE您的要求而定。如果您有多個專用於JRE的項目,那麼您可以使用項目特定的JRE。如果你對eclipse默認的JRE感到滿意,你可以繼續。這純粹是你的決定。

有人用JRE 1.6應該可以,只要1.6上運行的編譯級別設置爲1.6(這可能標誌,如果你的代碼有什麼功能1.7不屬於1.6份)。

+0

謝謝,只是我想知道是否有任何機制,我們可以明確地鎖定用戶有某些JRE否則項目應該失敗,通過在這裏設置任何選項或這些選項是不相關的,這一切都取決於我的代碼它使用的功能。 – Johnydep

+0

它是混合的,如果您將合規性級別設置爲某個jdk,則會強制您的用戶使用相同級別的JRE/JDK,否則會拋出UnsupportedClassVersionError。當你編譯你的代碼時,某些jdk的含義是,你的代碼最終會遵循該版本的JDK API。該SO環節都有例子的情況下http://stackoverflow.com/questions/1611312/java-error-bad-version-number-in-class-file-error-when-trying-to-run-cassandra – kosa

+0

這很有趣要知道的事情。謝謝!! – Johnydep

3

如果您使用的是特定於JDK 7的功能(如新NIO.2 /路徑API),那麼他們很可能不會基於java 6.此外Java 6中已經過測試工作,並經受住考驗因此大部分(如果不是全部的話)bug已經被解決了。 Java 7仍然是相當新的,即使在發佈之後,還有一個令人討厭的bug,在發佈幾天後出現,它不得不通過循環優化。因此,除非您特別需要JDK7功能,否則我建議您堅持使用JDK6,另一方面,如果您的項目不是關鍵任務,那麼您可以嘗試使用新的JDK7功能,因爲您的用戶羣擁有JRE 7.只需2美分...

+0

感謝,但如果我使用JDK6和目標用戶運行JDK7,這意味着它仍然會工作的權利?我只是問,因爲那麼我需要在創建新項目時在Eclipse中設置JDK版本,還是隻使用默認值?所以一個安全的做法是使用可用於您項目的最低版本? – Johnydep

+2

@Johnydep:是的(好吧,幾乎總是;-))。 Java堅定地致力於提供向下兼容性,所以舊代碼應該運行在更新的JRE上。這方面出現了一些問題,但它們相當罕見。一般來說,如果您使用某個版本的JDK進行開發,它將在此版本和任何更新版本上運行。 – sleske

+0

我喜歡這個答案,因爲它讓我感覺到JDK7是Java的Python3。 – Eric

相關問題