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.jarJDK:
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development KitJDK由一个标准类库和一组建立,测试及建立文档的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:
JRE是Java 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".