web-dev-qa-db-ja.com

JDK / JRE / JVM / Java SDK |それらはすべてどういう意味ですか? JREで開発できる場合もあれば、JDKが必要な場合もありますか?

実を言うと、私はこれらすべての用語(JDK/JRE/Java SDK)についてかなり混乱しています。それぞれが何をしているのかわかりません。

私が最初に単純なJavaの例を実行し始めたとき、私はJREしか持っていなかったと確信しています。これはデフォルトであると信じていましたJavaシステム上でJavaプログラム/アプレットを実行できるようにする。

ただし、現在クラスではGoogle Appengineを使用しています。これにはJDKが必要であり、これはJava SDKと同じです。JDKをインストールすると、 Java/binを環境変数に追加してjavac -versionをコマンドプロンプトで機能させるには、JDKだけがjavacを持っていることがわかります...

私の初期のJavaプログラムは、JDKをインストールせずに、したがってjavacを持たずにどのように機能しましたか?そして本当に主な質問... JREとJDKの違いは何ですか、いつ使用しますか?それぞれ?

ありがとうございました :)

27
Javed Ahamed

Eclipseには独自の組み込みコンパイラ(ecjと呼ばれる)があります。これが、JDKをインストールせずに使用できる理由です。 javacは使用しません。

Google App Engineは、JDKに付属するjavacを使用します。

17

JRE = Javaランタイム環境-Javaを必要とする、またはJavaで記述されたライブラリを使用するプログラム/ソフトウェアを実行するために必要なもの。たとえば、OpenOfficeにはJavaランタイム環境が必要です。

JDK/Java SDK = Java Development Kit/Java Software Development Kit-必要なものwrite Javaを必要とするプログラム、またはJavaで記述されたライブラリを使用するプログラム。たとえば、Javaで独自のワードプロセッシングツールを作成する場合などです。

JavaはVM(仮想マシン)を起動するため、JREに付属しています。 JDKを使用してコンパイルされたファイルであるclassファイルを取り込むことができます。

JDKにはjavacが付属しています。これは、.Javaファイルを.classファイルにコンパイルしてJREで実行できるようにするためです。

35
Vivin Paliath

JREとJDKの違いは何ですか?それぞれをいつ使用しますか?

[〜#〜] jre [〜#〜]:Javaランタイム環境。 Javaプログラムの実行にのみ使用されます。 Chris Jester -Young で述べたように、Eclipseにはコンパイラが組み込まれていました。そのため、(Eclipseを実行するために)JREが必要でした。

Javaプログラムを出荷する場合、クライアントに必要なのはこのランタイム環境だけです。

[〜#〜] jdk [〜#〜]:Java開発キット、これにはJREも含まれていますが、さらにJavaコンパイラjavacなどのプログラム開発用の他のツール。

Javaプログラムを作成する場合は、これを使用する必要があります。

3
OscarRyz

JREを使用してJavaプログラムをコンパイルする方法はありません。javac、Javaコンパイラは、JDKにのみ付属しています。

  • Javaプログラムは、どのテキストエディタでも作成できます。これを行うために、特別なことは何も必要ありません。
  • Javaプログラムを実行するには、JREが必要です。JREにはJava仮想マシンが含まれており、コンパイル済みのJavaプログラム。
  • Javaプログラムをコンパイルするには、JDKが必要です。したがって、Java開発者の場合は、必要なツールが付属しているため、JDKのみをインストールすることをお勧めします。 Java仮想マシンに加えて、コンパイルします。
2
Cesar

「時々jreで開発できる」

いいえ。

Java開発キットを使用して開発します。Javaランタイム環境またはエンジン、あるいはそれが呼び出されるものを使用して実行します。

1
user207421