2011-02-04 77 views
1

我在Java 6.0中編寫了一個程序,但事實證明,我們的一些客戶端只有5.0。在我自己的項目中使用Java源代碼

這個問題是很多6.0的功能還沒有在5.0中。例如:

  • JTable的排序,過濾功能
  • SwingWorker類

我的問題是:

  1. 是合法的,只是在Java 6.0的源代碼複製到自己的項目這樣我的5.0客戶端可以運行它。
  2. 從技術的角度來看,難道要像TableRowSorter,regexFilter這樣的類源代碼複製到我自己的項目並讓它工作?

感謝

+2

我強烈建議客戶端更新其Java運行時。 J2SE 5的生命週期始於2007年。嘗試在Java 5中找到一個安全漏洞,您可以利用它來說服他們升級。 – jarmod 2011-02-04 21:04:33

回答

0

這取決於你是從複製源代碼。從JavaSE? OpenJDK的?

無論您想從中複製,請檢查其代碼的許可證。

複製可能很簡單,僅複製類和它的依賴關係。雖然可能有很多特定的依賴關係,但這會使其消耗大量時間。如果你需要複製已經存在於第5版中的已更改的類,那麼在真正遇到問題時,你需要一個版本用於某些代碼,而另一個版本則需要更新。但是如果你只在該項目中使用Java6代碼,它應該沒問題。將這些類移入另一個包也可能是一種選擇,儘管可能有很多工作。

1

你應該問的一個問題是:爲什麼你的客戶沒有升級到Java 6.0?由於它是免費且容易的,所以它們必須有一個原因,並且在從它發送代碼之前,你應該知道它是什麼。

2

可能不是,OpenJDK類在GPL下,這意味着您必須將源代碼放在GPL下。 Oracle Java類也在「你不能只是做你想要的東西來源」,所以這很可能是一個非常糟糕的主意。

您可以使用Retroweaver使您的源代碼與早期版本的Java一起工作,但我會說您應該讓代碼與Java 5一起工作,可選擇使用Java 6工具(如果可用),然後向客戶說他們將從升級中獲得的東西。

相關問題