2013-03-03 39 views
4

我繼承尚未升級的一個很老的應用程序,因爲它依賴於第三方庫是依賴於Java的4的Java虛擬機6至調用Java VM 4

擺脫這種第三方圖書館不會在不久的將來發生,因爲系統的關鍵部分依賴於它。

我想將Java版本的應用程序更新爲最新版本,並且正在考慮將相關jar移動到它自己的VM中,然後在Java 6/7 VM和Java 4 VM之間進行某種調用。

首先想到的是使用RMI。顯而易見的第一個問題是使用不同的Java版本時,VM之間的兼容性。第三方lib產生字節流,所以返回的數據不會被串行化影響。如果兼容性是一個問題,傳入的數據可以被處理成可傳遞的數據。

這是正確的路嗎?

有沒有更好的方法?

+6

我覺得如果你不能真正移除Java 4的依賴關係,那麼你會浪費你的時間 - 你會獲得很少的安全性和大量的開銷。什麼是真正的錯誤,Java是向後兼容的 - 也許你可以包裝第三方庫,以便它可以在Java 6下運行? – 2013-03-03 20:16:29

+0

RMI是一個不錯的選擇。這可能是最簡單的選擇,從您對第三方庫的描述中,似乎不值得花費更多的努力。 – VGR 2013-03-03 20:36:52

回答

0
  1. 你可以做一個包裝的菲利普在你的評論說......只有你在你的舊庫做一些小的調整
  2. 可以使用RMI ......它是安全的!我測試了它,這是一個很好的方法......你不必改變舊亂碼
  3. 你也可以使用Web服務,但我更喜歡RMI

如果您需要修改一些小事情,你有太多的問題需要改變JVM(因爲有人修改了一些jdk庫[發生在我身上])就交給Java的4 ... :)

我的問題是,我需要一個圖書館從jdk 1.5在使用jdk 1.4但我的解決方案是反編譯jdk 1.5一個和編譯回jdk 1.4 ...因爲舊的jdk有東西修改它... 我反編譯的代碼的問題是,我找不到一個非常好的反編譯器,知道casting ...,我有一些stackoverflow錯誤(但這些很容易修復)

我希望我的回答可以幫助你