JDK     (java develop kit ,java开发套件),

JRE     (java runtime environment,java运行时环境),

JVM     (java virtual machine,java虚拟机)

图1:

    JDK

     ++
        |-----jre
                ++
                  |-------jvm
                  |-------

图2:

                     jdk1.6.0

        ___________|____________________
       |           |                    |
      bin         lib                  jre
       |           |          __________|_____________________
   java.exe    tools.jar     |                                |       
   javac.exe   dt.jar       bin                              lib               
   javap.exe            _____|____ __________         ________|_______ ________ ________       
   javah.exe           |          |          |       |        |       |        |        |
   javadoc.exe     java.exe    client      server rt.jar    ext security applet    fonts
                   java.dll       |          |   charsets.jar |                 
                   awt.dll     jvm.dll    jvm.dll        localedata.jar           

JDK:

简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDKSoftware Development Kit 一般指软件开发包,可以包括函数库、编译程序等。

JDK就是Java Development Kit

JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。

  作为JDK实用程序,工具库中有七种主要程序。

  Javac:Java编译器,将Java源代码转换成字节码。

  Java:Java解释器,直接从类文件执行Java应用程序字节代码。

  appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

  Javadoc:根据Java源码及说明语句生成HTML文档。

  Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。

  Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

  Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

JRE:

JREJava Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

jre只是jdk的一个部分,我们只要拥有了一份jdk就可以进行java程序开发了,而顾名思义,jre是java运行的时候所依赖的平台,jvm则更只是jre的一个部分,jre除了虚拟机外还提供了众多链接库,这些库会被jvm在运行时调用。

区别:

 

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行

Java程序的时候就需要JRE。而JDK里面已经包含了JRE,(JDK包含了java虚拟

机,java编译器等等)因此对JAVA_HOME设置为JDK的路径时也可以正常运行

Java程序,但是JDK比较大包括了许多与运行无关的内容,因此运行普通的Java

程序无须安装JDK。

 

 

 

奇怪的是,sun公司给我们提供了两套jre,稍留意一下我们就会发现在装完jdk,还可以选择装 一个jre,这个jre是被默认装到C:\Program Files\Java下的。sun提供两套jre是有道理的,如果我们只是想运行java程序,那么去官网下一个jre就行了,而无需拿来一个jdk,如 果是要开发java程序那就需要一个jdk了."jdk里面的工具几乎都是用java写的,所以jdk本身就是java应用程序,因此要使用jdk附的工 具来开发java程序也必须要自行附一套jre才行,这就是java_home\jre存在的原因,而位于Program File\jre的那套jre就是拿来执行我们自己写的java应用程序的。不过,两套中任何一套jre都可以拿来执行我们所写的java应用程序,可是 jdk内附的开发工具在预设开发工具使用包装器(.exe)来启动的情况下,都是自己去选用java_home\jre".