JavaおよびJVMライセンス


17

Javaライセンスにより、他社は独自のバージョンのJava言語を作成したり、正確に実装したりできますか JVMについての同じ質問。

SunはMicrosoftがJava実装の.NETバージョンとGoogle AndroidのJavaを変更したとして訴えていると聞いたが、全体の概念を全体として把握することはできない。

回答:


25

Java言語仕様を実装するコンパイラーを記述したり、Java仮想マシン仕様を実装するJVMを記述したりできますが、正式に「Java」と呼びたい場合は、TCK(テクノロジー互換性キット)、Oracleからのライセンスの支払い。

ただし、他の関係者がこれを簡単に行うことはできません。ApacheにはJVM(Apache Harmony)の独自の実装がありますが、以前はSunでしたが、現在はOracleがTCKを利用できるようにすることも、Apacheがライセンスを取得することもできませんでした。

ずっと前に、Microsoftには独自のバージョンのJava(実際には「Java」と呼ばれていました)がありました。彼らはそれを変更してWindows固有のものにしようとしましたが、もちろんSunはそれを好みませんでした。訴訟が発生し、Microsoftは敗北し、独自のJavaバージョンを終了し、.NETを作成しました。これは、Javaの仕組みと同じように機能するまったく異なるものです...

Androidに関する訴訟はこれにまったく基づいていません。GoogleはAndroidがJavaだと言っているわけではありません。その訴訟は特許に関するものです。オラクルは、独自のJVM実装で多数のアイデアとコンセプトに関する特許を取得しており、GoogleはOracleから特許ライセンスを取得せずにAndroidで同じ特許アイデアを使用していると主張しています。


2
ApacheはTCKとライセンスを無料で望んでいましたが、これはSunが拒否したものです(その権利も同様です)。Microsoft IMOは、言語仕様に沿ったものだったため、Sunに支えられていました。Javaの上にライブラリを作成し、Windowsとのインターフェイスを容易にしました。SunがSwingを同時に押し出したのはタイミングが悪いだけでした。当時のサンは、米国の政治における反MS感情をonって勝ちました。
11

「公式にjavaと呼ぶ」とはどういう意味ですか?jvmを変更して販売できますか?「Javaサポート付きのVM」という名前を付けることはできますか?
ピオトレック

1
@jwenting-MSが行ったことは、Java仕様に完全に準拠していませんでした。それは単なる「最上位のライブラリ」ではなく(これは問題ありませんでした)、完全に互換性のない実装でした(Java商標を使用するための要件であるSunのコンプライアンステストに合格しませんでした)。政治的な状況に関係なく、Sunは間違いなくその状況にありました。
ミケラ

@mikeraは、MSがその理由でJavaを呼び出さないことを除いて
...-

1
問題は、MSが既存のJavaクラスにメソッドを追加し、それらに対してコンパイルされたコードが標準クラスと互換性がないことでした。Javaの前提は、変更されていないプラットフォームで変更されずに実行されるはずであったということですが、これはもちろんロックインを作成します。
ピータークリエンス

3

さて、私が理解しているように、仕様を好きなように実装できます。正当に「Java」と呼ぶには、ライセンスを取得して互換性キットを渡す必要があります。

Androidは「java」ではありませんが、java言語を使用します。TCKを渡すことさえ試みません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.