初学Java的朋友可能分不清JDK、JRE、JVM的区别,那么下面我来简单的介绍一下他们的关系及使用

java se 区分 java se和jdk_java se 区分

JDK:Java Development Kit

JDKJava开发工具包,JDK是Sun Microsystems针对Java开发员的产品。

在JDK中其中包含JRE,JDK是Java编程开发的核心,其中包含啦JRE运行环境、Java编写、编译等等开发需求以及Java开发中Java的基础类库;

JavaJDK分为三个版本:

1.JavaSE(J2SE):standard edition,标准版,是我们通常用的一个版本。同时也是我们入门Java编程语言首先要学习,同时也是Java体系同基础不可缺失的,JavaEE及JavaSE都是基于JavaSE开发深耕而来;

2.JavaEE(J2EE):enterprise edition,企业版,使用这种JDK开发J2EE应用程序。JavaEE主要适用于开发大型网站、开发企业级项目后端实现等等

3.JavaME(J2ME):micro edition,主要用于移动设备、嵌入式设备上的java应用程序。主要适用于 家电、电器等方面

运行java时起作用的是以下四个文件夹:bin、include、lib、jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。

bin:最主要的是编译器(javac.exe)

include:java和JVM交互用的头文件

lib:类库

jre:java运行环境

 

 

JRE:Java runtime environment

JREJava运行环境,其中包含JVM

JRE是运行Java语言编写的程序的运行环境。Java开发者是通过它才得以将自己开发的程序发布到用户手中,从而然用户使用。

  JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些都是Java程序运行的必要组件。

注:JRE是Java运行环境,在开发者编写好一段程序编译后,运行程序的一个环境。JRE中没有任何开发工具(如编译器和调试器),JRE只是针对使用Java程序的用户

如:基于Java开发 我的世界 这款游戏,玩家只需要下载jre运行环境,即可运行此款游戏;

 

 

JVM:Java Virtual Machine

JVMJava运行虚拟机,是Java代码运行不可缺失的重要环境。

就是我们常说的Java虚拟机,JVM它是Java语言实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。

这也就是Java语言的核心:一次编译,多处执行;

也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机(相当于中间层)间接与操作系统交互,由虚拟机将程序解释给本地系统执行。(注:当然虚拟机是如何匹配的就不需要太国关注啦)

JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

因此相对于其他语言的开发,Java在各种平台上的可谓是游刃有余;

 

JDK,JRE,JVM三者关系概括如下:

jdk是JAVA程序开发时用的开发工具包,其内部也有JRE运行环境JRE。JRE是JAVA程序运行时需要的运行环境,就是说如果你光是运行JAVA程序而不是去搞开发的话,只安装JRE就能运行已经存在的JAVA程序了。JDk、JRE内部都包含JAVA虚拟机JVM,JAVA虚拟机内部包含许多应用程序的类的解释器和类加载器等等。

简单老说Java中 JDK、JRE、JVM三者的关系,其实就是Java编程从编写-编译-运行-平台。