2

私はJava6.0でプログラムを作成しましたが、一部のクライアントには5.0しかありません。

問題は、6.0が持っていた多くの機能がまだ5.0になかったことです。例えば:

  • JTableの並べ替え、フィルタリング機能
  • SwingWorkerクラス

私の質問は:

  1. Java 6.0のソースコードを自分のプロジェクトにコピーして、5.0jreのクライアントが実行できるようにすることは合法ですか。
  2. 技術的な観点から、TableRowSorter、regexFilterなどのクラスのソースコードを自分のプロジェクトにコピーして機能させるのは難しいですか?

ありがとう

4

3 に答える 3

3

おそらくいいえ、OpenJDKクラスはGPLの下にあります。つまり、ソースもGPLの下に置く必要があります。Oracle Javaクラスも「ソースを使用してやりたいことを実行することはできません」の下にあるため、これは非常に悪い考えである可能性があります。

Retroweaverを使用して、ソースを以前のバージョンのJavaで動作させることができますが、コードをJava 5で動作させ、オプションでJava 6機能を使用して、顧客にどのようなものを提供するかを伝える必要があります。アップグレードから。


2021編集:Java 17の時点で、適切な解決策は、テスト済みのJVMをデプロイメントの一部として含めることです。必要なものだけを持ってくるためのツールがあります。

于 2011-02-04T22:04:50.670 に答える
1

質問する必要があるのは、クライアントがJava6.0にアップグレードされていない理由です。それは無料で簡単にできるので、彼らには理由がなければなりません、そしてあなたはおそらく彼らにコードを送る前にそれが何であるかを知る必要があります。

于 2011-02-04T21:57:00.887 に答える
0

それはあなたがコピーしているソースコードに依存します。JavaSEから?OpenJDK?

どこからコピーしたい場合でも、コードのライセンスを確認してください。

コピーは単純で、クラスとその依存関係だけをコピーする場合があります。ただし、特定の依存関係が多数存在する可能性があるため、多くの時間がかかる可能性があります。また、バージョン5にすでに存在する変更されたクラスをコピーする必要がある場合は、実際に問題が発生します。あるコードには1つのバージョンが必要であり、他のコードには新しいバージョンが必要です。ただし、そのプロジェクトでJava6コードのみを使用している場合は、問題ないはずです。クラスを別のパッケージに移動することもオプションである可能性がありますが、多くの作業が必要になる可能性もあります。

于 2011-02-04T20:55:37.967 に答える