什么是JDK?
JDK 是 Java Development ToolKit 的简称,也就是 Java 开发工具包。
JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。
JDK 组件、工具和实用程序
JDK 的 bin 目录提供了有助于软件开发过程的各种功能和工具。一些更流行的 JDK 实用程序包括:
javac:此实用程序用于将 Java 源代码编译为 Java 字节码。
rmic:此实用程序创建用于远程方法调用 (RMI) 的骨架和存根。
jar:此压缩实用程序将大量文件聚合到单个 Java ARchive (JAR) 文件中。jar 实用程序使用所有最常见的 zip 实用程序都使用的标准压缩算法。
javadoc:此实用程序可以检查类的名称和包含在类中的方法,以及使用特殊注释来为 Java 代码创建应用程序编程接口 (API) 文档。
wsgen:这会生成 Java API for XML Web Services (JAX-WS) 所需的各种工件。
javap:此实用程序反汇编类文件,生成有关给定编译组件的方法、属性和属性的信息。
JDK 还包含许多用于检查 JVM 运行时行为的工具,包括 Java Mission Control (JMC)、Java Flight Recorder (JFR) 和 VisualVM。
什么是JRE?
JRE是Java Runtime Environment 的简称,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JRE包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK 与 JRE 比较
下载和安装 Java 时,有两种可能的选择。第一种是下载安装JRE,第二种是下载安装JDK。
任何用 Java 编写的程序,除了标准的 Java 库集和简单的执行环境之外,不需要任何额外功能,都可以在 JRE 提供的 JVM 上成功运行。
但是,如果需要任何补充功能,例如需要即时编译 Java 源代码或生成身份验证证书,则需要 JDK。JDK 包含自己的 JRE,但在 JRE 的基本功能之外还提供了各种额外的功能。
什么是JVM?
JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。所以,JAVA虚拟机JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE(当然也可以单独安装JRE)。
JDK与JVM和JRE的区别?
JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。
JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。