JDK、JRE、JVMの違いと連絡について

2492 ワード

キーワード:JDK,JRE,JVMサマリ:JDKはJava言語のソフトウェア開発キット(SDK)です.JDKのインストールディレクトリの下にjreディレクトリがあり、そこには2つのフォルダbinとlibがあります.ここでbinにはjvmがあり、libにはjvm作業に必要なクラスライブラリがあり、jvmとlibを合わせるとjreと呼ばれます.
一、JDK JDK(Java Development Kit)はJAVA全体の核心であり、Java実行環境(Java Runtime Envirnment)、Javaツール(javac/java/jdbなど)、Javaベースのクラスライブラリ(Java APIにはrt.jarが含まれています).JDKはjava開発ツールパッケージで、基本的にjavaを学ぶ人はみなまず機械にJDKをインストールしますが、彼はどの部分を含んでいますか?ディレクトリの下に6つのフォルダ、1つのsrcクラスライブラリのソースコード圧縮パッケージ、その他のいくつかの宣言ファイルがあります.このうち、javaを実行する際に本当に役立つのは以下の4つのフォルダです:bin、include、lib、 jre.JDKはJREを含み、JREはJVMを含む関係がある.
      bin:        (javac.exe)
      include:java JVM       
      lib:  
      jre:java    

(注意:ここのbin、libフォルダとjreのbin、libは違います)
総じてJDKはjavaプログラムの開発に用いられ,jreはclassのみ実行可能でコンパイルされていない機能である.
二、JRE
JRE(Java Runtime Environment、Java実行環境)は、JVM標準実装およびJavaコアクラスライブラリを含む.JREはJava実行環境であり、開発環境ではないため、開発ツールは一切含まれていない(コンパイラやデバッガなど)JREとはjavaの実行環境を指す.JVMだけではclassの実行にはならない.classを解釈する際にJVMが解釈に必要なクラスライブラリlibを呼び出す必要があるからである.(jreには.classを実行するjava.exeがある)JRE(Java Runtime Environment)はJavaプログラムを実行する上で欠かせない(他のコンパイル環境で.exe実行可能ファイルにコンパイルしない限り......)JREの地位はPC機のように、私たちが書いたWin 64アプリケーションはオペレーティングシステムで実行する必要があります.同じように、私たちが書いたJavaプログラムもJREで実行しなければなりません.
三、JVM
JVM(Java Virtual Machine)は、Java仮想マシン、java実行時の環境である.JVMはコンピューティングデバイス用の仕様であり、架空のコンピュータであり、実際のコンピュータ上で各種のコンピュータ機能をシミュレーションすることによって実現される.javaユーザーに対して、つまり実行可能な.classファイルパッケージを持つ(jarまたはwar)のユーザ.主にjvmとjavaランタイム基本クラスライブラリ(rt.jar)が含まれている.rt.jarは、javaソースコードをコンパイルしたjarパッケージであると簡単に乱暴に理解できる.Java仮想マシンは、バイトコードを実行する際に、バイトコードを特定のプラットフォーム上のマシン命令として実行する.これがJavaの「一度コンパイルし、あちこちで実行する」ことができる理由である.
四、JDK、JRE、JVMの三者の連絡と区別
1.三者連絡:JVMは単独でclassの実行を行うことができない.classを解釈する時、JVMは解釈に必要なクラスライブラリlibを呼び出す必要がある.JDKの下のjreディレクトリには2つのフォルダbinとlibがあり、ここでbinにはjvm、libにはjvm作業に必要なクラスライブラリと考えられ、jvmとlibを合わせるとjreと呼ばれます.JVM+Lib=JRE.全体的には、JDK(JAVA API呼び出し)を利用して独自のJAVAプログラムを開発した後、JDKのコンパイラ(javac)を通じてテキストjavaファイルをJAVAバイトコードにコンパイルし、JRE上でこれらのJAVAバイトコードを実行し、JVMはこれらのバイトコードを解析し、CPUコマンドセットまたはOSのシステム呼び出しにマッピングする.
2.3つの違い:a.JDKとJREの違い:binフォルダの下で発見され、JDKにjavacがある.exeでJREにはありません.javacコマンドはjavaファイルをclassファイルにコンパイルするために使用されます.これは開発者が必要としています.ユーザー(実行のみが必要な人)は必要ありません.JDKにはjar.exe、javadoc.exeなどの開発に使用される実行可能命令ファイルもあります.これは、開発環境であり、実行環境であることを確認しています.b.JREとJVMの違い:JVMはclassを実行できるわけではありません.JVMは.classを実行することができます.JVMは.classを実行することができます.JREのlibクラスライブラリのサポート、特にrt.jarを実行する必要があります.
参考文献:http://playkid.blog.163.com/blog/static/56287260201372113842153/https://baike.baidu.com/item/JVM/2902369?fr=aladdin