一、JDK JDK(Java Development Kit)是针对Java开发员的产品,简单的说JDK是面向开发人员使用的SDK,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。 二、JRE JRE(Java Runtime Environment)是Java程序的运行环境。既然是运行,当然要包含JVM,也就是所谓的Java虚拟机,还有所以的Java类库的class文件,都在lib目录下,并且都打包成了jar。 三、两者的区别 JRE是Java的运行环境,而JDK不同,它是java的开发工具包,里面包含了各种类库和工具。当然也包括了另外一个JRE。 JDK为什么要包括另外一个JRE呢?而且jdk/jre/bin同时有client和server两个文件夹下都包含一个jvm.dll,说明有两个虚拟机,这是为什么呢? jdk的bin下有各种java程序需要用到的命令,与jre的bin目录最明显的区别就是jdk下才有javac,这一点很好理解,因为 jre只是一个运行环境而已。与开发无关,正因为如此,具备开发功能的jdk自己的jre下才会同时有client性质的jvm和server性质的 jvm, 而仅仅作为运行环境的jre下只需要client性质的jvm.dll就够了。