文章目录
JDK、JRE、JVM之间的关系
JDK(Java Development Kit):
JDK(Java开发工具包):JDK是开发Java应用程序所需的完整工具集合。它包括JRE,还包括用于编译、调试和运行Java代码的工具,如编译器(javac)、调试器(jdb)、Java文档生成器(javadoc)等。
JDK是面向开发人员的,适用于编写、编译和调试Java代码。
JRE(Java Runtime Environment):
Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
JRE允许您运行已编译的Java程序(.class文件),但是它通常不包括用于编译Java代码的工具。
JVM(Java Virtual Machine)
Java虚拟机,JVM是Java应用程序运行的环境。它是一个虚拟的计算机,负责解释和执行Java字节码的虚拟机,它能够将这些字节码转换为特定操作系统能够理解和执行的指令。
JVM是平台无关的,这意味着您编写的Java代码可以在安装了相应JVM的任何操作系统上运行。
- JDK = JRE + 开发工具(比如:javac)
- JRE = JVM + JavaSE标准类库
注:JVM是用来执行Java字节码的虚拟机,但如果没有Java标准类库,它可能无法正常执行包含对这些类库的依赖的程序。Java标准类库提供了许多Java程序所需的核心功能和工具类,包括输入输出、集合框架、网络通信等。如果程序依赖于这些标准类库的某些部分,而环境中没有这些类库的实现,那么程序可能无法正常运行或者会出现异常。
一些简单的Java程序也许不需要大部分标准类库,但绝大多数实际的Java应用都依赖于这些类库的功能。所以,尽管JVM可以执行Java字节码,但缺少Java标准类库可能会导致程序无法运行或出现异常。
我们利用JDK开发了属于我们自己的Java程序后,通过JDK中的javac编译,将.java文件编译成.class文件(Java字节码),在JRE上运行这些Java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。