2009-11-27 36 views
2

當使用一個Java版本編譯代碼並在不同版本上部署代碼時,會出現奇怪的錯誤嗎?使用不同的java更新版本|這如何影響應用程序?

在我們的開發(Windows)機器上,我們使用JDK.1.4.2_13以及QA(測試)和Prod [兩者都是UX盒]其JDK.1.4.2_9

我不是在談論主要版本,而是次要版本/更新!

我同意它的好處,如果它是一致的機器。但是,如果未成年人或更新有任何不同,這可以嗎?

回答

4

正如@Nathan建議的,您的QA和生產環境必須使用相同的JDK版本,並且通常儘可能相同。在開發環境中最好也有相同的配置。

例如,假設您的生產環境位於JDK.1.4.2_9,但您的開發和QA使用的是較新的JDK.1.4.2_13。我們還可以說您的新版本取決於JDK.1.4.2_13中首次提出的錯誤修正。在這種情況下,質量檢查將通過,但生產將失敗,可能是災難性的。

但您的QA也在JDK.1.4.2_9。假設您的QA過程很好而且徹底,它將捕獲新版本對新JDK.1.4.2_13的依賴關係,您可以修復它。

如果您的質量檢查存在缺陷,該怎麼辦?在這種情況下,問題首先體現在生產中。出於這個原因,最好還是將開發環境保留在JDK.1.4.2_9上,以使錯誤不太可能投入生產。

您仍然可以在任何地方升級到JDK.1.4.2_13,而不是在代碼發佈期間。首先通過在開發環境中進行升級和測試,然後在QA環境中進行測試,然後將更改部署到生產環境中,從而獨立完成此任務。

1

您應該不會遇到任何小版本更改的問題,字節碼格式完全相同。次要版本之間有變化,但它們通常是錯誤和安全性修補程序,不會影響您的應用程序。

也就是說,最好的選擇是在相同版本上運行QA和生產,以確保沒有功能改變會改變應用程序的工作方式。

0

在次要版本之間的字節碼和API之間沒有區別。當然,這個版本並不一樣,但幾乎所有的時候,它們的行爲方式都是一樣的。但是可能會出現一些差異,例如出現較舊的JDK並在較新的JDK中修復的錯誤。

小心在異構的Win/Unix環境中使用正確的構造來編寫一次,到處運行。例如使用java.io.File.separator而不是斜槓或反斜槓。

0

舊版本的字節碼由新版本支持,除了已刪除的apiS 但新版本的字節碼從不支持。

所以最好是根據客戶需求量的或我們需要methodes alwayes最小的(舊的)版本應使用

相關問題