参考资料:https://blog.csdn.net/songkai320/article/details/51819046
1、JVM(Java Virtual Machine)
JVM又称Java虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。【来源:百度百科】这句话描述得有点玄乎,个人的理解是JVM的各个模块还有运行流程是模仿计算机底层逻辑来完成,所以叫做虚拟机,而它解释的是java文件编译之后的.class文件,因此就叫Java虚拟机。JVM是整个Java能够实现跨平台运行的最核心部分。(JVM的原理另开文章记录)
2、JRE(Java Runtime Environment)
JRE是指Java运行环境,即所有需要运行Java程序、应用的电脑都必须安装JRE。它包含JVM标准实现和Java核心类库,不包括任何的开发工具(IDE、编译器等)。Java核心类库用于协助JVM和程序的工作。
3、JDK(Java Development Kit)
JDK是Java语言软件开发工具的缩写,顾名思义是开发Java应用所需要的工具,它包括JRE和Java开发工具。JDK的安装目录下lib是该版本JDK的Java基础类库,Jjre的文件夹,那是这个版本JDK所对应的JRE,也就是下载JDK的同时会包含JRE。而JRE的文件下,bin可以认为是JVM,而lib则是运行JVM所需要的jar包。
(某些时候程序运行错误,是因为JRE的版本和应用开发时使用的JDK版本不对应)