首先我们知道,Java程序的运行需要在JVM(Java虚拟机)上,在编写Java程序之前需要配置Java的运行环境,其中就是JDK的安装了,那么就引起同学们的问题了,JDK , JRE ,JVM之间的关系是怎么样的?
话不多说,图先奉上:
根据上图,就可以清晰看出它们之间的关系了
JDK:
JDK(Java SE Development Kit),JAVA 的标准开发包,里面包含了编译,运行Java程序的各种工具资源,包括Java编译器,运行环境,Java类库。
bin:主要的编译器(javac.exe)
include:java和JVM交互用的头文件
jre:java的运行环境
lib:java 的类库
JRE:
JDK的一部分,JAVA的运行环境,主要解释字节码文件,就是如果不是程序员,普通用户的话,不需要编译测试,只需要运行Java程序的话,单单一个JRE就足够了。JRE包含就是类加载器,字节码校验器,以及Java基础类库,先比与JDK就缺少一个编译器。
JVM
JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。不过它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。
当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。
总结:
1.JDK,Java程序员开发必要,如果普通用户只需要运行,只安装JRE就可以搞定,无需安装JDK.
2.JDK包含JRE,JDK,JRE包含JVM。
3..JVM 是 java 编程语言的核心并且具有平台独立性。
一次编译,到处运行。(Compile once, run everywhere)