JDK 与 JRE、JVM 之间的关系
1. JDK
JDK(JAVA Development Kit) 是用于开发Java应用程序的软件开发工具集合,包括了Java运行时的环境(JRE),解释器(Java),编译器(Javac),Java归档(jar),文档生成器(Javadoc)等工具。
2. JRE
JRE(Java Runtime Enviroment) 提供Java应用程序执行时所需要的环境,由Java虚拟机,核心类,支持文件等组成。
3. JVM
Java Virtual Machine有三层含义,分别是:
JVM规范要求;
满足JVM规范要求的一种具体实现;
一个JVM运行实例,在命令提示符下编写Java命令以运行Java类时,都会创建一个JVM实例;
就范围而言:
JDK > JRE > JVM;
JDK = JRE + 开发工具
JRE = JVM + 类库
运行时Java程序的交互关系:
简单来说,就是通过JDK开发的程序,编译以后,可以打包分发给其他装有JRE的机器上去运行。而运行的程序,则时通过Java命令启动一个JVM实例,代码逻辑的执行都运行在这个JVM实例上。
Java程序的开发运行过程为:
我们利用JDK(调用Java API)开发Java程序,编译成字节码或者打包程序。然后可以用JRE则启动一个JVM实例,加载,验证,执行Java字节码以及依赖库,运行Java程序。而JVM将程序和依赖库的Java字节码解析并变成本地代码执行,产生结果。
当然了,在JVM里面程序解析成指令,通过压栈出栈计算出相应的结果,最后返回。总的来说,我们要开发Java程序,就需要安装运行某个版本的JDK工具包,也可以指安装JRE,后者体积比较小。