Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java知识理解:为什么安装JDK以及JDK、JRE、JVM三者关系及相关理解

Java知识理解:为什么安装JDK以及JDK、JRE、JVM三者关系及相关理解

作者头像
鲲志说
发布于 2025-04-07 03:08:32
发布于 2025-04-07 03:08:32
1670
举报

大家都知道电脑的操作系统是由汇编和C语言写出,因此操作系统无法直接识别其他语言。这时我们就需要添加一个(翻译)编译环境,将其他语言(翻译)编译为操作系统能够识别的语言。

Java为我们提供了一个很好的 当我们在电脑编译Java语言时就需要借助一个翻译的平台-----可跨系统的----JDK

编译过程大致为: java源程序—>JDK把java翻译成.class—>jre(JDK中包含jre)运行.class文件解释为中间代码—>送给操作系统(C语言识别、汇编语言识别)—>转变为二进制

下面是根据我的理解制作的流程图: 以Windows系统为例 JDK把.java文件翻译成.class文件—>jre运行.class文件—>送给操作系统识别—>汇编语言识别—>转变为二进制,机器进行操作

JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm(真正对java进行翻译的),lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。

一、什么是JDK

通俗来说:JDK 是整个JAVA的核心,包括了Java运行环境,一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

JDK是java开发工具包,我们学java都会先在机器上装一个JDK,JDK目录下面有六个文件夹:一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的 是以下四个文件夹:bin、include、lib、 jre。其中JDK包含JRE,而JRE包 含JVM。 bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:第三方类库的存放 jre:java运行环境

总的来说JDK是用于java程序的开发编译,而jre则是为运行 .class文件提供环境 而没有编译功能。

二、什么是JRE

通俗来说:JRE是指java运行环境,包含JVM及Java核心类库。 我们编写的Java程序必须要借助JRE才能运行,光有JVM还不能完成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。(jre里有运行.class的java.exe)

三、什么是JVM

JVM(Java Virtual Machine),即java虚拟机,为 java运行时的环境制定规则,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar)。rt.jar可以简单粗暴地理解为:它就是java源码编译成的jar包。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

四、JDK、JRE、JVM三者的联系与区别 1.三者联系:

JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。 JVM+Lib=JRE。 总体来说就是,我们利用JDK开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码(.class文件),在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

JDK把java翻译成.class—>jre运行.class—>送给操作系统识别—>C语言识别—>汇编语言识别—>转变为二进制

2.三者区别:

(1)JDK和JRE区别: 在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。

(2)JRE和JVM区别: JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。

(3)JVM和JRE区别: JVM定义执行规则,JRE按照规则执行。

五、相关理解

不使用eclipse编辑器也可以通过记事本写java并成功运行,只要有对应的运行环境即可,只是eclipse为我们提供了便捷。

脚本语言:vb(window系统自带识别环境)、shell(Linux系统自带识别环境) js(自带浏览器识别) 脚本语言操作系统本身也是并不识别,只是操作系统提前配置了识别环境,我们只需要通过记事本编辑,完成后更改后缀名就可以运行。所以我们认为不需要进行编译可以直接在操作系统执行的就是脚本语言。

本文参考的CSDN文章出处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
谈一谈|JDK、JRE和JVM的解释以及联系和区别
前要:JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
算法与编程之美
2020/07/16
9180
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM(Java Virtual Machine,即java虚拟机),java程序的运行环境(java二进制字节码的运行环境)。
寻求出路的程序媛
2024/07/29
1490
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JDK、JRE和JVM三者之间关系
很多程序员已经写了很长一段时间java了,依然不明白JDK,JRE,JVM的区别。今天个人总结一下它们三者的关系、区别。
用户7886150
2020/12/02
5900
JVM、JRE、JDK的作用与区别
在Java环境配置和项目启动中,这三者的配置是项目启动的基础保证,但这三者的作用和区别呢,本文将对JVM、JRE、JDK的作用与区别进行讲解。
算法与编程之美
2022/05/23
1.3K0
Java跨平台你真的理解对了吗?
小面朋友最近去面试,直接被一个基础问题pass了。面试管的问题是:你怎么看待Java是跨平台的说法?
灬沙师弟
2023/03/07
3690
Java跨平台你真的理解对了吗?
什么是Java虚拟机以及JDK,JRE,JVM的区别和联系
The Java Virtual Machine (JVM) is an abstract computing machine. The JVM is a program that looks like a machine to the programs written to execute in it. This way, Java programs are written to the same set of interfaces and libraries. Each JVM implementation for a specific operating system, translates the Java programming instructions into instructions and commands that run on the local operating system. This way, Java programs achieve platform independence 翻译一下: Java虚拟机(JVM)是一种抽象计算机器。JVM是一个程序,它看起来像是一台机器,用于编写并在其中执行的程序。通过这种方式,Java程序被写入同一组接口和库中。针对特定操作系统的每个JVM实现都将Java编程指令转换为在本地操作系统上运行的指令和命令。这样,Java程序就实现了平台独立性。
向着百万年薪努力的小赵
2022/12/02
6810
什么是Java虚拟机以及JDK,JRE,JVM的区别和联系
什么是JVM?什么是JRE?什么是JDK?三者的区别和联系?
总的来说,JDK 是用于 java 程序的开发,而 jre 则是只能运行 class 而没有编译的功能。
bboy枫亭
2020/09/22
1.4K0
什么是JVM?什么是JRE?什么是JDK?三者的区别和联系?
JDK,JRE,JVM区别与联系
JVMJDKEclipseJava企业应用 很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。 今天特写此文,来整理下三者的关系。 JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国 内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比 SUN的JDK高的多。但不管怎么说,我们还是需要先把基础的Sun JDK掌握好。 JDK有以下三种版本: J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序 我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库 供我们使用。 JRE:Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE 下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。 JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。 下图很好的表面了JDK,JRE,JVM三者间的关系: 我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些 JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
Java学习123
2021/12/28
1.6K0
Java基础(3)-JDK、JRE、JVM区别与联系
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/171
joshua317
2021/10/22
2.9K0
java教程系列二:Java JDK,JRE和JVM分别是什么?
本章主要了解JDK,JRE和JVM之间的区别。JVM是如何工作的?什么是类加载器,解释器和JIT编译器。还有一些面试问题。
java干货
2021/02/19
8040
java教程系列二:Java JDK,JRE和JVM分别是什么?
Java基础--JDK的安装和配置弄懂 JRE、JDK、JVM 之间的区别与联系
  Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论允许程序员以优雅的思维方式(思想很重要)进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、动态性特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
mukekeheart
2019/09/29
1.8K0
Java基础--JDK的安装和配置弄懂 JRE、JDK、JVM 之间的区别与联系
【JavaSE专栏2】JDK、JRE和JVM
JDK 是提供给 Java 开发人员使用的,其中包含了 Java 的开发工具,也包括了 JRE,如编译工具(javac.exe),打包工具 (jar.exe)等。
Designer 小郑
2023/08/01
2290
【JavaSE专栏2】JDK、JRE和JVM
java是什么?java能用来干嘛?[通俗易懂]
Java是一种开发语言,核心特点:跨平台,面向对象。对于开发者来讲,Java基本等于**Jdk**。 Java由四方面组成:
全栈程序员站长
2022/09/08
6860
JVM,JRE,JDK之间的区别和联系
Java Api是Java的应用程序接口,里面有很多写好的Java Class,包含一些重要的语法结构以及基本图形,网络和文件IO,我们可以直接调用。
开源日记
2020/11/25
3.8K0
Java-JDK
最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK。
Quinlan
2021/05/21
4780
【Java那些年系列-启航篇 03】JDK、JRE和JVM之间是什么关系?
Java Development Kit(JDK)是Java编程语言的心脏,为开发者提供了一个完整的开发环境,用于构建、测试、运行和调试Java应用程序。
夏之以寒
2024/04/25
6000
【Java编程进阶之路 06】深入探索:JDK、JRE与JVM的关系与差异
在Java开发者的日常工作中,JDK、JRE和JVM这三个概念是不可或缺的。它们构成了Java应用程序的运行环境,但很多初学者可能对这三者的关系和差异感到困惑。本文旨在详细解析JDK、JRE和JVM之间的关系,帮助读者更好地理解Java的运行机制。
夏之以寒
2024/03/05
1.8K0
面试官:JDK、JRE、JVM 三者什么关系?
这个题目在面试题中基本没怎么出现,但在笔试题中倒是经常见到。所以还是有必要拉出来溜溜~
田维常
2020/09/22
2.2K0
面试官:JDK、JRE、JVM 三者什么关系?
jdk与jre的区别
JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
张哥编程
2024/12/13
980
【JAVA-Day02】JDK、JRE和JVM: Java开发与运行的三位好朋友
在Java世界中,JDK、JRE和JVM是三个你需要熟悉的重要角色。它们分别扮演着开发、运行和执行Java程序的不同角色。本文将深入探讨它们之间的关系和作用。
默 语
2024/11/20
780
【JAVA-Day02】JDK、JRE和JVM: Java开发与运行的三位好朋友
推荐阅读
相关推荐
谈一谈|JDK、JRE和JVM的解释以及联系和区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档