23

私は (まだ) 本当の Java 開発者ではありませんが、今ではこれを知っておくべきだと思いますが、まだ非常に混乱しています。私の質問には2つの部分があります:

  1. いわゆる(私が見たように)「Sun JDK」、OpenJDK、および GCJの違いは何ですか?

  2. さまざまな場面で、次のようなものが飛び交い、どのバージョン番号が実際に何に適用されるのかを理解するのが非常に混乱しているのを見てきました。誰かがこれを整理するのを手伝ってくれますか?

    • Java 6
    • Java 1.6
    • JDK6
    • JDK1.6
    • JRE1.6
    • JVM11.0

注: JDK (Java Development Kit) と Java ランタイム環境の違いは理解しています。JRE と JVM の違いについては完全にはわかりませんが、JVM とは/何をするかは知っています。

4

5 に答える 5

11
  1. Sun JDK は Sun によって作成され、OpenJDK は競合するオープン ソースの実装です。GCJ は GNU Java コンパイラです。
  2. Java 6 = Java 1.6 および JDK 6 = JDK 1.6

詳細項目 1 http://en.wikipedia.org/wiki/OpenJDK https://stackoverflow.com/questions/1977238/why-should-i-use-the-sun-jdk-over-the-openjdk-or-逆に

http://en.wikipedia.org/wiki/GNU_Compiler_for_Java

GCJ は Sun JDK/OpenJDK とどのように関係していますか? 私が認識している直接的な関係はありません。GCJ は別のプロジェクトです。ある JDK を他の JDK よりも使用するメリットは何ですか? Sun JDK を再配布すると、ライセンスの問題が発生する可能性があります。個人的には、その安定性から、Sun JDK をより信頼しています。OpenJDK は Sun プロジェクトではありませんか? はいといいえ。コミュニティプロジェクトです。

于 2011-01-14T22:28:31.870 に答える
10

Java 6 と Java 1.6 は同じです。当初、Java は Java 1.X と名付けられていましたが、時がたつにつれ、Sun のマーケティング担当者は、「1」を削除した方が、大幅な改善が行われたことを示すのに適していることに気付きました。部。これを行う最初のバージョンは、Java 5 として販売された Java 1.5 でした。

JRE 6 は、Java 6 のコンシューマ ディストリビューションです。 http://java.comから簡単にダウンロードできます。

JDK 6 は、Java 6 の開発者向けディストリビューションです。コンパイラなどのツールと、デフォルトの JRE よりも多くのカルチャのサポートが含まれています。http://javasoft.comからダウンロードする必要があります。

JVM 11.0 は、Oracle JRE/JDK 内の Java「インタープリター」のバージョンです (他のベンダーは異なる番号を使用しています)。これは、Windows Vista が実際には Windows 6.0.6001 であると言っているのと似ています。

于 2011-01-14T22:27:07.463 に答える
4
  1. これらは基本的に、Java 仮想マシンがどのように動作するかを記述した同じ標準セットの異なる実装です。
  2. Java のバージョニングは通常の方法で 1.0 から 1.4 に進み、マーケティングの賢い人が次のバージョンを 1.5 ではなく「Java 5」と呼ぶというアイデアを思いつきましたが、もちろんこれは混乱を招くだけで、6 に持ち越されました ( 1.6) シリーズであり、おそらくしばらく続くでしょう。ただし、JVM 11.0が何であるかはわかりません。(本当に 1.1.0 ではありませんか? 私はそれがロングショットであることを知っていますが、誰が知っています.)

そしてJVMとJREの違い。厳密に言えば、JVM は Java バイトコードを解釈する単なるマシンですが、JRE にはすべての標準クラス ライブラリ、リソース ファイル、dlls ( sos) なども含まれます。

于 2011-01-14T22:28:44.253 に答える
3

Sun は長年にわたり、プログラミング言語の命名規則にいくつかの変更を加えてきました。もともと jdk1.1 などを持っていました。jdk1.2 で、彼らはこれを Java 2 に変更することを決定しました。

その後、不思議な理由でjdk1.3に戻り、次にjdk1.4に戻りました。jdk1.5 がリリースされたとき、彼らは意識的に名前を変更しようとしました。そのため、Java 5がありました。彼らはこれに固執することを決定したため、次のようになります。

   jdk1.5 = Java 5
   jdk1.6 = Java 6
   jdk1.7 = Java 7

そして(多分)そうです。

うまくいけば、それはその部分を説明します。あなたの質問では Java6 == Java 1.6 == JDK 6 == JDK 1.6 です。

JVMとJREについて。JRE には、JVM、クラス ライブラリ、および Java プログラムの実行に必要なその他のツールが含まれています。JVM は、バイト コードを解釈してホスト マシン上で実行する単なるプログラムです。

于 2011-01-14T22:26:30.147 に答える
1

GCJ は認定された JVM ではないことに注意してください。これは、GNU ライセンスの下で部分的な Java 互換性を持つ Java プロジェクトの GNU クラスパスです。それがニーズを満たしていることが確実で、別の完全な Java 実装を使用できない理由がない限り、それを避けるべきです。

于 2011-01-15T00:26:17.737 に答える