117

私はOpenJDKを何年も使用してきましたが、最初は問題のない小さなプロジェクトに使用していました。しかし、大きなおもちゃで遊ぶようになってから、ランダム/不明な致命的なエラーとクラッシュ (H.264 コーデックなど) に気付き始めました。それまでは、システム クラッシュ + 致命的なエラーに対処するのは悪夢でした。 OpenJDK が原因です。

OpenJDK に完全にイライラして疲れた後、最終的に Oracle JDK 7 に切り替えることにしました。それ以来、私の致命的なエラー/クラッシュはなくなりました。それが発生するかどうかを確認するためにまだトレースを行っていますが、これらのシステムクラッシュはまだ発生していません.

OpenJDK がライセンスの問題にすぎない場合、なぜそれで安定性が不可能なのか疑問に思っています。

なぜ OpenJDK は、安定版リリース内でバグを存続させているのに、Oracle JDK のクローン (実際にはそうではありません) であると主張しているのですか? (クイック機能のみ利用可能ですか? それとも安定性/信頼性に重​​点を置いていますか?)

4

2 に答える 2

73

技術的な違いは、それぞれの目標の結果です (OpenJDK は参照実装であり、コミュニティに公開されることを意図していますが、Oracle は商用のものであることを意図しています)。

どちらも Java API のクラスのコードが「ほぼ」同じです。ただし、仮想マシン自体のコードは実際には異なります。ライブラリに関しては、OpenJDK はオープン ライブラリを使用する傾向があり、Oracle はクローズド ライブラリを使用する傾向があります。たとえば、 フォント ライブラリ.

于 2013-06-28T12:08:22.903 に答える
68

OpenJDK は参照モデルおよびオープン ソースですが、Oracle JDK は OpenJDK の実装であり、オープン ソースではありません。Oracle JDK は OpenJDK よりも安定しています。

OpenJDK は GPL v2 ライセンスの下でリリースされますが、Oracle JDK は Oracle Binary Code License Agreement の下でライセンスされます。

OpenJDK と Oracle JDK のコードはほぼ同じですが、Oracle JDK にはより多くのクラスがあり、いくつかのバグが修正されています。

したがって、エンタープライズ/商用ソフトウェアを開発したい場合は、徹底的にテストされ安定している Oracle JDK をお勧めします。

私は OpenJDK を使用してアプリケーションがクラッシュするという多くの問題に直面しましたが、これは Oracle JDK に切り替えるだけで修正されます

于 2014-03-21T12:30:00.950 に答える