JDK和JRE的区别和联系

简介: JDK和JRE的区别和联系

大家应该都知道JDK和JRE是什么,但是当面试官问道“请用你所学的java知识,告诉我JDK是干什么的?”,“JRE有什么作用?”,“这两者有什么区别和联系?”等问题时,可能就说的不是很明白了。下面就详细讲述一下JDK和JRE之间的区别和联系,为大家彻底理清JDK和JRE相关的知识。

话不多说,先上图:

image.png

从图中可以看出JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java开发工具(javac/java/jdb等)和Java基础的类库(即Java API 包),下面开始揭开JDK和JRE的神秘面纱。


一、概念


JDK全称为Java Development Kit,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包。


JRE全称为Java Runtime Environment,顾名思义是java运行时的环境,包含了java虚拟机,java基础类库,是使用java语言编写的程序运行所需要的软件环境。


二、区别


1、面向人群不同


JDK是提供给程序员使用的。JRE是提供给想运行java程序的用户使用的。

2、重要程度不同


如果你需要编写java程序,需要安装JDK。如果你需要运行java程序,只需要安装JRE就可以了。


3、安装目录不同

3.1、如果安装JDK,电脑会有两套JRE


一套是JDK中的JRE,位于 \jre 目录下。

另外一套是JRE自己的,在下载安装时默认位于 C:\Program Files\Java\jre目录下。

在这里博主当时安装JRE时是放到了D盘,如图:

(1)E:\Java\jre

image.png

(2)D:\Java\jre

image.png

3.2、如果只安装JRE,会默认在 C:\Program Files\Java 目录下安装唯一的一套JRE,位置可以选择,这里博主放到了D盘:

image.png


三、联系


1、包含关系

JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具(JConsole,Web Services等工具软件),还包含了Java基础的类库(即Java API 包括rt.jar)。


2、执行关系

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

也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。


1得到公式:jvm+lib=jre

image.png

image.png



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

1

总而言之,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

目录
相关文章
|
1月前
|
Java 开发工具
JDK、JRE、JVM三者之间的关系
JDK、JRE、JVM三者之间的关系
67 0
JDK、JRE、JVM三者之间的关系
|
1月前
|
Java 编译器 测试技术
滚雪球学Java(03):你知道JDK、JRE和JVM的不同吗?看这里就够了!
【2月更文挑战第12天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
115 4
|
1月前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
1月前
|
Java
jdk17没有jre处理
jdk17没有jre处理
|
1月前
|
小程序 Java 程序员
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
34 0
|
1月前
|
存储 监控 Oracle
简单介绍JDK、JRE、JVM三者区别
1995年Sun公司在SunWorld大会上发布了Java1.0版本,并提出可那个响彻云霄的“一次运行,随处编译”的口号,这句话充分的展示出了Java的跨平台特性,提到跨平台,便衍生出了我们今天需要讨论的话题,JDK、JRE、JVM三者的区别
25 2
|
1月前
|
Java 应用服务中间件 Linux
Caused by: java.lang.UnsatisfiedLinkError: /root/jdk1.7.0_45/jre/lib/amd64/xawt/libmawt.so: libXrend
Caused by: java.lang.UnsatisfiedLinkError: /root/jdk1.7.0_45/jre/lib/amd64/xawt/libmawt.so: libXrend
|
1月前
|
存储 安全 Java
JDK、JRE 和 JVM 的区别和联系
JDK、JRE 和 JVM 的区别和联系
132 0
|
1月前
|
Java 编译器 API
JDK、JRE、JVM的特点和关联
JDK、JRE、JVM的特点和关联
|
8天前
|
Oracle Java 关系型数据库
玩客云安装Armbian和部署jdk环境
该文介绍了在玩客云设备上安装Armbian系统和Java SDK的步骤。首先,需要准备玩客云设备、Armbian镜像文件和USB工具。然后,通过短接点刷入Armbian系统,并通过SSH访问。接着,从可信源下载Java SDK,将其解压并移动到合适目录,编辑环境变量使其生效。最后验证Java安装成功。注意选择兼容版本并备份数据。内容涵盖了ROM开发相关技术。