1.基本概念
JVM : 全称 Java Virtual Machine,即java虚拟机,是一个用于执行字节码的”虚拟计算机”。由于不同的操作系统有不同的虚拟机,Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。实现了“一次编译,随处运行”。 这也是Java虚拟机实现跨平台的核心机制。
JRE:全称Java Runtime Environment,即java运行环境。包含了Java虚拟机、库函数、运行Java应用程序所必须的文件。 注意:只有JVM并不能执行.class文件,JVM执行.class还需要JRE下的lib类库的支持(jre里有运行.class的java.exe)。同时可以发现,在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为JRE。
JDK:全称Java Development Kit,即java开发工具包。包含JRE,Java基础的类库以及一大堆java工具(编译器javac和调试器等)。
JDK目录下面主要包含四个主要的文件夹(bin、include、lib、 jre)、一个src类库源码压缩包、和其他几个声明文件。其中四个文件夹作用(注意这里bin和lib和JRE里的是不同的):
- bin:最主要的是编译器(javac.exe)
- include:java和JVM交互用的头文件
- lib:类库
- jre:java运行环境
2.区别与联系
区别:
JDK有javac.exe用来将java文件编译成class文件,是开发者所需要的而用户不需要。
JRE有java.exe用来运行.class文件,是程序的运行环境。
JVM解析JRE中运行的字节码文件,映射到CPU指令集或OS的系统调用。
总结:
1.如果只是要运行Java程序,只需要JRE就可以。JRE通常非常小,其中包含了JVM。
2.如果要开发Java程序,就需要安装JDK。
联系:
总结:
JVM:将字节码文件转成具体系统平台的机器指令。
JRE:JVM+Java语言的核心类库。
JDK:JRE+Java的开发工具。