はい、混乱する可能性があります。
あなたはそれを求めていませんでしたが、ここから始めます。 JVMはJava仮想マシンです。これは、コンパイル済みのJavaコード(.classファイルと、複数の.classファイルをまとめた.zipファイルである.jarファイル)を読み取って実行できるプログラムです。 Windows用のJVM、Linux用のもの、OSX用のものなど、多くのJVMがありますが、多くの代替JVM、組み込みデバイス用のJVMなどもあります(多くの人は同意しませんし、しかし、一般的には、システム管理者はサーバ上で実行されている実際のバイナリを示すために "JVM"と言うでしょう。
あなたは以下のことを求めませんでした。 JREはJavaランタイム環境です。これには、を実行するために必要なすべてが含まれています。これは、JVM自体、標準ライブラリ、および他のファイルの束です。標準ライブラリはそれ自体非常に重要です。なぜなら、Javaアプリケーションを開発するときに使用する多くの有用なものが含まれているからです。 java。*パッケージのすべてのものと、com.sun、com.oracleパッケージのいくつかの非公開のものが含まれています。
異なるバージョンのJava(1.0、1.1など、1.7まで、Java 7とも呼ばれる)は、通常、JVMと標準ライブラリの両方に改良が加えられているため、通常は一緒に実行する必要があります。 JREに一緒にパッケージされています。
コンピュータ上でJavaプログラムを実行している場合は、JREがインストールされています。
JDKはJava Development Kitです。これには、 JavaアプリケーションのためのJREだけでなく、他の多くの有用なものが含まれています。これには明らかにコンパイラ(明らかにJREに含まれていますが、この事実を無視することができます)、.jarファイルを作成するJARユーティリティ、クラスファイルの "逆コンパイル"、.jarファイルの検査、それらを再パッケージ化することなどが含まれます。
また、通常、標準ライブラリのドキュメントと標準ライブラリのすべてのソースも含まれています。これは、開発者が読み込みおよび検査するのに便利なためです。 Javaアプリケーションを真剣に開発したい場合は、JDKが必要です。
JavaSE、JavaEE、JavaMEなどについては、「エディション」と呼ばれています。基本的には、Javaのエコシステムは、日が異なるエディションでJavaを提供することを決定し、巨大であるため、:
- のJava SE:
- など、それは通常、クライアント側のソフトウェアに適している、標準版です通常のアプリケーションJavaME:モバイル版ですが、これは古い携帯電話の小さなゲームで作られたものですが、基本的には非常に小さな容量のプロセッサに適したJavaの「より小さい」バージョンです。
- JavaEE: "エンタープライズ版"です。これは、サーバー側のものを開発するために使用されるので、サーバー側で使用される多くのライブラリが含まれています。
番号付けに関して、彼らはそれをかなり混乱させました。実際には、Java 1.4以降ではJCPを作成し、Java自体の開発にコミュニティを関与させました.Java 1.5からは、業界でも1.5と呼ばれていましたが正式に「Java 5」と命名されました。また、Java 1.2はJava 2でしたが、誰でも知っている人は誰もworking in Sun at that time always called it 1.2ではありませんでした。
Javaをダウンロードすると(Java 7など)、JVMに付属しています。 –
はい、JVMはJREのコンポーネントの1つです。 JDKにはJREも含まれています。そう、はい、JVMも持っています。実際には "JVM"(ここではJVM仕様ではなく、実際のバイナリ)は "java.exe"プログラムであり、Javaプログラムを起動すると表示されるDLLです。 * nixまたはosxの下で) –
ありがとう、本当に多くを説明しました:) –