1、JVM -- java virtual machine

  jvm即java虚拟机,它主要有一个功能就是将编译好的class文件进行解释执行,因为class文件不能由操作系统直接执行,需要有jvm解释方可执行。

  JVM、JRE、JDK的区别_头文件

jdk-->jre-->bin可以认为该目录即为jvm

 2、JRE -- java runtime environment

  jre是指java运行时环境,class文件在运行时需要调用各种java的类库,即jvm要想运行class文件必须要依赖jre中的lib库,可以认为,jvm+lib组成jre。

 JVM、JRE、JDK的区别_头文件_02

  如图,jre即由bin+lib组成,也就是说jre包含了jvm以及执行class文件所需要的类库lib。

3、JDK -- java development kit

  JDK即java开发工具包。

JVM、JRE、JDK的区别_java_03

 

  在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。 
       bin:最主要的是编译器(javac.exe) 
       include:java和JVM交互用的头文件 
       lib:类库 
       jre:java运行环境

至此可知,jdk主要面向开发者,具有java的编译功能,jre主要面向用户,主要是class文件的运行,假如我们只有编译好的class文件和jre,那么就可以运行class了。