2014-01-31 49 views
2

我們正在從Java 6u17移植到Java 7u45
該應用程序運行在Weblogic 12.1.1.0,它有大量的遺留代碼和依賴關係(我們保持不變的版本)。
重新編譯後,我們得到了應用程序的運行。
起先似乎都不錯,但在同時,我們碰到了「GC開銷超過限制」。它出現在Java 6_17下的多年工作完美的批處理作業之中(而且從未改變過)。
顯然還有更多的只是「重新編譯和運行」,至少必須考慮GC調整。從Java 6移植到Java 7期間會發生什麼期望

因此,問題在於,在企業應用程序從Java 6遷移到Java 7的過程中是否有人遇到過問題(或者可能是驚喜)?
還是有什麼指引/好的做法?
PS:這純粹是現實問題。讓我們省略討論利弊,語言變化等。

+1

Java 7中的新增功能:http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html – Andremoniy

+1

從Java 6遷移到Java 7:https://blogs.oracle.com /亨利克/項/ migrating_from_java_se_6 – Andremoniy

回答

2

我剛纔昨天將我的代碼從6.17SE升級到7.51SE(即重新編譯它)。它是一個企業應用程序?不是。這是一個約有500個班級的圖書館,幾乎完全使用java.lang,utilio,其中有一小部分爲java.lang.reflect和一小部分爲java.net

不太困難的部分是將javac,CLASSPATH和PATH重新指向正確的JDK。你會發現編譯錯誤更加冗長,這在第一印象中稍有改善。 (我無法評論垃圾回收調整。)

在我的任何代碼中都沒有必要進行任何更改,這並不令人驚訝。來自"migration" link,由@Andremoniy提供:

幾乎所有現有的程序都應該在Java SE 7上運行而不需要修改。不過,也有在JRE和JDK涉及極少數情況下,並在此處記錄的完整性「極端情況」一些小的潛在的不兼容性: http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#incompatibilities

至於語言改進(我知道你不需要的意見,但我要提到的,因爲它是如此相關的),我可能首先採取的diamond generics inferencecatching multiple exceptionsauto-closeable try blocks優勢。

祝你好運。