区别:
JDK(Java Development Kit) Java开发工具包面向开发人员使用;
JRE(Java Runtime Environment) Java运行环境面向普通用户使用;
JVM(Java Virtual Machine)也就是Java虚拟机,是一个介于Java程序与操作系统之间的中间人,它是实现Java跨平台的关键部分。
联系:
JDK与JRE:
我们打开默认的Java安装目录可以看到有两个文件夹:
第一个jdk1.8.0-05文件夹就是JDK, 第二个jre8文件夹也就是JRE。但是打开第一个jdk文件夹会发现还有一个jre文件夹,这个也是JRE。
为什么会有两个JRE?
因为JDK里的工具大部分用Java所编写,同属于Java应用程序,使用JDK所附的工具来开发Java程序,所以自身需要附一套JRE才能运行。首图中与jdk同级目录下的JRE就是用来运行一般Java程序用的。
两套JRE运行的时候究竟运行哪一个呢,这个时候JDK中java.exe先从自身目录中找,然后父级目录中找,如果都没有就去注册表中找。
JVM与JRE:Java编译器将.java文件生成一个体系结构中立的目标文件格式(.class),class文件在JVM上解释执行,然后才能被操作系统识别,JVM充当了翻译官的角色,正是由于JVM这个翻译官的功劳才使得Java能在众多平台运行,拥有很好的跨平台型。严格来说JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是JVM,lib中则是JVM工作所需要的类库,而JVM和 lib和起来就称为JRE。