JREとJDKの違いは何ですか?

:より転載http://www.pinlue.com/article/2020/03/0508/089982919333.html

 

1.定義

JRE(Javaランタイム的環境)は、Javaランタイム環境です。ユーザーではなく、開発者向けのJavaプログラム。あなたが唯一のJREをダウンロードしてインストールした場合は、お使いのシステムは、Javaプログラムを実行することができます。JREは、JVMのJavaコアライブラリと標準の実装を含むJavaプログラムを実行するために必要な環境のセットです。これは、Java仮想マシン、Javaプラットフォームのコアクラスとサポートファイルが含まれています。これは、開発ツール(コンパイラ、デバッガなど)は含まれていません。

JDKもJ2SDK(Java2のソフトウェア開発キット)として知られている(のJava Development Kit)、Java開発環境を提供するJava開発キットは、実行(javacコンパイラおよびJavaクラスファイルにコンパイルされたファイルのための他のツールを提供します)環境(ランタイムはそれを実行するために取得するためにクラスファイルを解析するためのJVMと補助パッケージを提供します)。あなたはJDKをダウンロードしてインストールした場合は、Javaプログラムを実行するためのプラットフォームを持っても、Javaプログラムを開発することができないだけ。これは、Java Runtime Environment(JRE)を含む、コアJava JDK、およびJavaの標準クラスライブラリ(rt.jarの)のtools.jar Javaツールの束です。

2.ディス

JREは、主に含まれています:Javaのライブラリのクラスファイル(両方とものlibディレクトリにjarファイルにパッケージ化)と仮想マシン(のjvm.dll); JDKが主に含まれています:Javaライブラリクラスファイルを(両方とものlibディレクトリ内のjarファイルにパッケージ化)およびJREが付属しています。なぜSHOULD JDKは、JRE、それが付属していますか?およびJDK / JRE / binフォルダの下に次のクライアントとサーバは(JRE命令は2台の仮想マシンを持っているが付属していますJDK)2つのjvm.dllが含まれています。

その中にセットJDK / binパス環境変数のパスに覚えていますか?先生はその後のjavacとjavaは服用しないで、設定されていないことを教えてくれます。実際、JDK / binディレクトリには、すべてのコマンドが含まれています。しかし、誰は、javaコマンドがないと思ったが、我々は、JDK / binにディレクトリ/ binディレクトリの下に、JREの下ではありませんか?あなたが実験を行うことができると信じてはいけない、私たちはどこか別の場所にJDK / binディレクトリの下のjava.exeをカットすることができ、その後、何かを見つけるために、Javaプログラムを実行しますか?すべてOK!誰かが尋ねるためにバインドされている(JREがjavacのコマンドではありませんが、その理由は、それが開発環境ではない、非常に簡単ですか)?私は明らかに環境変数ああに設定されていないJRE / binディレクトリにありますか?折角ああ、手動で設定した環境変数に、各顧客のニーズは非常にJavaの場合、ほとんどの人が使用して提供するために想像し、彼らは、ただ、JREのjavaプログラムを起動させ、その上で実行されている、JDKの開発を必要としませんか?だから、JREは、システム変数のjava.exeをJREに自動的にヘルプ追加のプログラムをインストールするとき、インストール検証方法は非常に簡単で、外出先で以下のWindows / system32にに行き、発見されたものを参照してください?java.exeがあります。

3.難しさ

JDKがインストールされている場合は、お使いのコンピュータには、JRE(JRE JREとJDK自体に)の二組、セット率の背後にある少数のサーバサイドのJava仮想マシンの前に設定されています。

(1)なぜ日JDK JREが同じの2セットをインストールしてみましょうか?これは、(などのjavac.exe、jar.exe、など)のJava開発ツールで書かれた多くのJDKがあるためである、と/lib/tools.jar年に配置されています。私たちは名前を変更tools1.jarをtools.jarを、次に実行するのjavac.exe場合は、次のような結果を示しています。スレッドの例外「メイン」java.lang.NoClassDefFoundErrorが:COM /日/ツール/ javacの/メイン。あなたがのjavac.exe入力のjava -cp C入力します。この手段:/jdk/lib/tools.jar com.sun.tools.javac.Mainは同じであるが、同じ結果を得ることができます。目的は、長い指の生活を入力することから、開発者を可能にすることですながらここからは、単なるラッパー(ラッパー)のjavac.exe証明することができます。そして、プログラムは、/ libディレクトリで見つけることができ、ここから我々は結論を引き出すことができ、ないより29K以上、非常に小さいです。JDKツールは、ほとんどのJavaで書かれている、それはそうも仕事のためにJREに自分自身を添付する必要があり、Javaプログラムを開発するためにJDK付属のツールを使用し、また、Javaアプリケーションなので、セットは、JDKのディレクトリにあります。 JREは、一般的にJavaプログラムを実行するために使用されます。

(2)それを決定するJREの二組の複数のコンピュータのインストール、もし?主要なタスクは、java.exeを身体に落ちます。java.exeジョブは、Javaプログラムを実行するための適切なJREを見つけることです。JREを検索するには、以下の順序でのjava.exe:1)独自のディレクトリ下にはJREを持っていない、2)親ディレクトリが何のJREがありません。3)クエリレジストリ:[HKEY_LOCAL_MACHINE / SOFTWARE / Javaソフトウェア/ Javaランタイム環境を]。だから、JREが実行された素晴らしい関係を持っているコンピュータ内部のjava.exe結果を実行します。

(3)JDK - > JRE - > 2つのフォルダBinディレクトリがあります:サーバーとクライアントは、これは本当のjvm.dllの嘘です。jvm.dllが始まるが、明示的なメソッドを使用して支援し、(LoadLibraryのを使用してダイナミックリンクライブラリの助けを借りて、負荷へのWin32 API()とのGetProcAddress()の中にある)ときのjvm.dllは、一人で作業することはできませんダイナミックリンクライブラリ(.dll)は、親ディレクトリのjvm.dllのディレクトリに配置する必要があります。ですから、JVMを使用したいのか、あなただけがPATH、次のポイントのjvm.dll JREディレクトリを設定する必要があります。

4.ほとんどの主流のJDKは、JDKのSunのリリースです、日に加えて、多くの企業や組織は、自らのJDKを開発し、たとえば、IBM JDK、BEAのJrocketだけでなく、GNU JDKの組織開発によって開発されているがありますように。

公開された60元の記事 ウォン称賛52 ビュー110 000 +

おすすめ

転載: blog.csdn.net/yihuliunian/article/details/104671976