介绍
Java开发工具 Java Development Kit 简称JDK
Java运行时环境 Java Runtime Environment 简称JRE
Java虚拟机 Java Virtual Machine 简称JVM
详细介绍
JDK:
JDK是java开发工具包,是整个Java的核心,包括了Java运行环境(Java Runtime Environment )简称jre,一堆Java工具(javac.exe/java.exe/jdb等)和Java基础的类库(即Java API 包括rt.jar)。jdk中包含jre(jdk11以后没有jre文件夹需要手动添加)。在jre的目录下,有bin和lib文件夹,在这里可以认为bin里面就是jvm,lib是java工作需要的类库,它们两者结合就称为jre。
注意:
jre文件夹下的bin和jdk下的bin是不同的,JDK是用于java程序的开发的(bin下有javac.exe、java.exe等),而jre则只能运行class而没有编译的功能。
JRE:
是运行基于java语音编写的程序必不可小的运行环境,也是通过它,java开发者才可以将自己开发的程序发布到用户手中,让用户使用。jre是运行环境,并不是开发环境,所以没有包含任何开发工具(如编译器,调试器等)。
JRE包含JVM标准实现及Java核心类库,光有JVM还不能执行class文件,因为解释class的时候JVM需要调用解释所需要的类库lib(jre里有运行.class的java.exe)
JVM:
JVM就是我们常说的Java虚拟机,它是整个Java实现跨平台的最核心的部分,所有的Java程序首先被编译为.class文件,这种文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应,是有我们的JVM解释处理,再交给操作系统处理。
JDK与JRE的关系
1、两者是包含关系,JDK包含JRE
2、应用区别:如果只要运行Java程序,则只需要安装JRE运行环境;如果要做Java开发则必须安装JDK,如果安装了JDK则无需安装JRE。
三者联系
JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
Java的运行过程
字节码文件:
是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是有Java编译器编译后生成的目标代码文件,编程人员和计算机都无法直接读懂字节码文件,它必须由java解释器来解释执行。
Java解释器:
Java解释器是Java虚拟机的一部分,在运行Java文件时,首先启动JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。
**注意:**Java程序通过JVM可以实现跨平台特性,但JVM是 不跨平台的。也就是说,不同操作系统上的JVM不一样,如:Windows和Linux平台上用的JDK是不一样的。