2015-11-10 55 views
4

什麼是最好的方式遷移Java代碼舊的JDK(1.5)的一個最近的Java版本(1.8),以提供其新功能和改進。 我們有一個大的Java JDK 5的代碼庫,並希望遷移爲JDK 8如何將Java代碼遷移到最新的JDK(如1.8)

有很多編譯器警告和提示(如diamond operatormulticatchunnecessary (un)boxing,等等),這將提高性能,代碼的可讀性,等等。

我們使用Netbeans IDE。有沒有我們可以使用的插件還是有遷移腳本?

+0

不熟悉Netbeans。但你可以試試IntelliJ(免費版)來解決這些問題。 – ZhongYu

+2

您描述的警告不是來自編譯器,而是Netbeans IDE。它們正是您要求的功能的一部分。加上這些警告,Netbeans提供修復程序,如果您願意,您可以運行這些審覈並修復整個項目。不需要額外的插件。 – Holger

回答

1

找到我正在尋找的:Netbeans優惠Inspect and Transform

這可以用於將您的完整代碼庫(或其中的一部分)與變更配置進行轉換。

這是它如何工作的:

  1. 選擇項目
  2. 點擊Refactor菜單
  3. 點擊Inspect and Transform菜單項
  4. 選擇configuration並使用Manage按鈕
  5. 選擇您想要的配置它轉化(例如Can Use Diamond,Join catch sections using multicatch,unnecessary boxing等)
  6. 點擊Inspect
  7. 審查提出重構建議,並單擊Do Refactoring

你完整的代碼庫重構和使用您選擇的新功能和新成語。

IntelliJ IDEA也有類似的功能。見Analyze>Inspect Code ...

的Eclipse這在code style(配置)或source(菜單)稱爲clean up

1

不幸的是,沒有什麼神奇的方法可以實現你所要求的,但這裏有一些指針可以讓你更容易地將代碼遷移到JDK 1.7(注意,JDK 1.8已經出現一段時間了和1.7已經停止支持正式由Oracle):

  • 使用CheckStyle的或在Eclipse類似的插件來發現問題

  • 建立在Eclipse中編譯JDK 1.7級項目; Eclipse提供的警告比命令行編譯器在控制檯上打印的警告更方便用戶使用

  • 理論上,JDK 1.7向後兼容1.5。唯一的例外是assert和enum關鍵字。如果您將這些單詞用作用戶定義的類型/方法名稱,則會出現編譯錯誤。因此,大部分情況下,您可以直接看到警告。如果到了緊要關頭,你可以選擇忽視了許多這些警告的(當然,前提是你必須)

+7

''assert''和'enum'都存在於Java 1.5中。 – EJP

4

的代碼是不相容與Java 8的可能性是微乎其微的,因爲Java已經採取確保向後兼容所有以前的版本。

您可能會遇到的問題更加深入,可能在多年來發生更改的集合或方法的實現中。

如果您沒有涵蓋代碼關鍵路徑的測試套件,那麼就從這裏開始。您將需要該測試套件以確保遷移沒有可怕的破壞任何東西。

接下來,仔細閱讀兼容性指南for Java 1.7Java 1.8,並確保您正在使用的內容沒有受到這些更改的影響。

最後,可以解決代碼清理問題,但是應該不是。您需要關心的唯一事情就是讓平臺在新版本的Java上運行。當您在代碼庫中工作時,請自行規範自己和團隊,以使用更新的Java成語(如菱形符號),並在適用的情況下嘗試使用資源。

+0

感謝您的精心解答。兼容性不是這裏的問題。我們也有相當多的測試。我特別希望從新的jdks的改進中受益。 –

相關問題