Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JVM,JRE,JDK之间的区别和联系

JVM,JRE,JDK之间的区别和联系

作者头像
入门笔记
发布于 2022-06-02 08:12:29
发布于 2022-06-02 08:12:29
1K00
代码可运行
举报
文章被收录于专栏:入门小站入门小站
运行总次数:0
代码可运行

jdl, jre, jvm

JDK包含了JRE,JRE包含了JVM

  • JDK:java开发工具包,针对java开发人员,可以编译运行java程序
  • JRE:java运行时环境,针对使用java程序的客户,可以运行字节码(.class),但是不能编译Java源码
  • JVM:用来解释执行字节码文件(.class),但不能正确的执行

什么是JVM

JVM是JRE的一部分,是虚拟出来的一台计算机.通过实体计算机仿真各种计算功能来实现,JVM有自己完善的硬件架构,如处理器,堆栈,寄存器等,还有相应的指令集.JVM是Java跨平台的核心,Java程序通过JVM的跨平台,从而使Java程序跨平台.Java程序首选会被编译成字节码文件(.class),JVM的核心任务就是解释字节码文件(.class)并映射到真实CPU指令集或者系统调用.JVM不关系上层Java程序,只关系字节码(.class).

什么是JRE

JRE是Java运行环境,所有Java程序必须依赖JRE才能运行.只有JVM是不能运行字节码文件的(.class),因为解释的字节码的时候需要lib库. JRE里面有两个文件夹bin/,lib/bin/就是JVM,lib就是JVM所需要库。JVM+lib=JRE

什么是JDK

JDK是Java的核心,包含运行Java运行环境(JRE)和一些Java工具及Java基础类库 。

JDK提供的工具

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
appletviewer.exe*    java-rmi.exe*  jrunscript.exe*    policytool.exe*
extcheck.exe*        javaw.exe*     jsadebugd.exe*     rmic.exe*
idlj.exe*            javaws.exe*    jstack.exe*        rmid.exe*
jabswitch.exe*       jcmd.exe*      jstat.exe*         rmiregistry.exe*
jar.exe*             jconsole.exe*  jstatd.exe*        schemagen.exe*
jarsigner.exe*       jdb.exe*       jvisualvm.exe*     serialver.exe*
java.exe*            jdeps.exe*     keytool.exe*       servertool.exe*
javac.exe*           jhat.exe*      kinit.exe*         tnameserv.exe*
javadoc.exe*         jinfo.exe*     klist.exe*         unpack200.exe*
javafxpackager.exe*  jjs.exe*       ktab.exe*          vcruntime140.dll*
javah.exe*           jli.dll*       native2ascii.exe*  wsgen.exe*
javap.exe*           jmap.exe*      orbd.exe*          wsimport.exe*
javapackager.exe*    jps.exe*       pack200.exe*       xjc.exe*

Java Api是Java的应用程序接口,里面有很多写好的Java Class,包含一些重要的语法结构以及基本图形,网络和文件IO,我们可以直接调用。

总结

  • 有JVM和lib库(JRE)就可以执行字节码(.class)文件(Java程序)
  • 有JRE可以运行(Java程序)但是还不能开发Java程序,需要JDK(JRE+开发工具)才可以

windows 安装jdk

image-20201013130923240

会发现有两个目录,其实只需要jdk1.8.0_91就可以,里面包好了jre,jre1.8.0_91是JDK单独提供一个一个运行环境

两个目录jre的区别

  • 相同点:这两个JRE都可以作为Java程序的运行环境
  • 不同点:JDK只能使用自己目录自带的JRE,不能使用外面单独安装的JRE

开发到运行

安装JDK环境,调用本地的Java api完成业务代码,通过JDK的编译器(javac)编译成字节码(.class),然后在JRE上运行这些JAVA字节码,JVM解释这些字节码,映射到CPU指令集或者系统调用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM(Java Virtual Machine,即java虚拟机),java程序的运行环境(java二进制字节码的运行环境)。
寻求出路的程序媛
2024/07/29
1680
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
什么是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
6870
什么是Java虚拟机以及JDK,JRE,JVM的区别和联系
JDK自带工具之概览
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/toc.html
IT小马哥
2020/03/18
6820
【JavaSE专栏2】JDK、JRE和JVM
JDK 是提供给 Java 开发人员使用的,其中包含了 Java 的开发工具,也包括了 JRE,如编译工具(javac.exe),打包工具 (jar.exe)等。
Designer 小郑
2023/08/01
2320
【JavaSE专栏2】JDK、JRE和JVM
Java知识理解:为什么安装JDK以及JDK、JRE、JVM三者关系及相关理解
大家都知道电脑的操作系统是由汇编和C语言写出,因此操作系统无法直接识别其他语言。这时我们就需要添加一个(翻译)编译环境,将其他语言(翻译)编译为操作系统能够识别的语言。
鲲志说
2025/04/07
2190
Java知识理解:为什么安装JDK以及JDK、JRE、JVM三者关系及相关理解
Java-JDK
最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK。
Quinlan
2021/05/21
4830
JDK、JRE和JVM三者之间的关系
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。
用户7886150
2021/04/23
4780
Java简介 | Jdk、Jre、Jvm区别
Jre全称是Java Runtime Environment,意为Java运行环境。
Defu Li
2019/12/19
8650
弄懂 JRE、JDK、JVM 之间的区别与联系
其实很多 Java 程序员在写了很多代码后,你问他 jre 和 jdk 之间有什么关系,jvm 又是什么东西,很多人不知所云。本篇不会讲述 jvm 底层是如何与不同的系统进行交互的,而主要理清楚三者之间的区别,搞清楚我们写的 xxx.java 文件是被谁编译,又被谁执行,为什么能够跨平台运行。
Single
2018/03/14
1.4K0
弄懂 JRE、JDK、JVM 之间的区别与联系
JVM、JRE、JDK的作用与区别
在Java环境配置和项目启动中,这三者的配置是项目启动的基础保证,但这三者的作用和区别呢,本文将对JVM、JRE、JDK的作用与区别进行讲解。
算法与编程之美
2022/05/23
1.3K0
Java基础知识1-Java简介
归思君
2023/10/16
1830
Java基础知识1-Java简介
-1-0 Java 简介 java是什么 java简单介绍
了解 Java 技术  https://www.java.com/zh_CN/about/
noteless
2018/09/11
5550
-1-0 Java 简介 java是什么 java简单介绍
Java基础--JDK的安装和配置弄懂 JRE、JDK、JVM 之间的区别与联系
  Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论允许程序员以优雅的思维方式(思想很重要)进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、动态性特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
mukekeheart
2019/09/29
1.9K0
Java基础--JDK的安装和配置弄懂 JRE、JDK、JVM 之间的区别与联系
【JAVA-Day02】JDK、JRE和JVM: Java开发与运行的三位好朋友
在Java世界中,JDK、JRE和JVM是三个你需要熟悉的重要角色。它们分别扮演着开发、运行和执行Java程序的不同角色。本文将深入探讨它们之间的关系和作用。
默 语
2024/11/20
890
【JAVA-Day02】JDK、JRE和JVM: Java开发与运行的三位好朋友
Java Review (一、Java开发环境)
有些程序编译结束后,还可能需要对其他编译好的目标代码进行链接,即组装两个以上的目标代码 模块生成最终的可执行性程序,通过这种方式实现低层次的代码复用。 因为编译型语言是一次性地编译成机器码,所以可以脱离开发环境独立运行,而且通常运行效率较 高;但因为编译型语言的程序被编译成特定平台上的机器码,因此编译生成的可执行性程序通常无法移植到其他平台上运行;如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改,至 少也需要采用特定平台上的编译器重新编译。 现有的C、C++、Objective-C、Pascal等高级语言都属于编译型语言。
三分恶
2020/07/16
8530
谈一谈|JDK、JRE和JVM的解释以及联系和区别
前要:JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
算法与编程之美
2020/07/16
9220
面试官:JDK、JRE、JVM 三者什么关系?
这个题目在面试题中基本没怎么出现,但在笔试题中倒是经常见到。所以还是有必要拉出来溜溜~
田维常
2020/09/22
2.2K0
面试官:JDK、JRE、JVM 三者什么关系?
初识Java
不仅如此,Java 还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
利刃大大
2023/04/28
1990
初识Java
Ubuntu彻底卸载jdk「建议收藏」
1、移除所有java相关的包(sun,Oracle, openJDK, lcedTea plugins ,GIJ)
全栈程序员站长
2022/09/07
5.1K0
Ubuntu彻底卸载jdk「建议收藏」
Java基础(3)-JDK、JRE、JVM区别与联系
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/171
joshua317
2021/10/22
3K0
相关推荐
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验