JVM、JRE、JDK的区别
1、JVM — java virtual machine
jvm即java虚拟机,它主要有一个功能就是将编译好的class文件进行解释执行,因为class文件不能由操作系统直接执行,需要有jvm解释方可执行。
jdk–>jre–>bin可以认为该目录即为jvm
2、JRE — java runtime environment
jre是指java运行时环境,class文件在运行时需要调用各种java的类库,即jvm要想运行class文件必须要依赖jre中的lib库,可以认为,jvm+lib组成jre。
如图,jre即由bin+lib组成,也就是说jre包含了jvm以及执行class文件所需要的类库lib。
3、JDK — java development kit
JDK即java开发工具包。
在目录下面有六个文件夹、一个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了。