问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JRE与JVM、JDK的区别?

发布网友 发布时间:2022-04-23 20:10

我来回答

3个回答

热心网友 时间:2022-04-14 04:24

一、 详细介绍
1、JVM -- java virtual machine
JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行。
JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域。 JVM 通过抽象操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方 法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收 算法,线程调度算法(可能不同 OS 有不同的实现)。
JVM 的主要工作是解释自己的指令集(即字节码)到 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序*扰。 JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的 组成包括 JVM 指令集,符号表以及一些补助信息。
2、JRE -- java runtime environment
JRE是指java运行环境。光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 在JDK的安装目 录里你可以找到jre目录,里面有两个文件夹bin和lib,在 这里可以认为bin里的就是jvm,lib中则是jvm工 作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件 和jre一起打包发给朋友,这样你的朋友就 可以运行你写程序了。(jre里有运行.class的java.exe)
JRE 是 Sun 公司发布的一个更大的系统,它里面就有一个 JVM 。 JRE 就与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本。同 JVM 一起组成 JRE 的还有一些 API (如 awt , swing 等)。 JRE 是运行 Java 程序必不可少的。
JRE ( Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的 地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。
JRE里面有一个 JVM , JRE 与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,,同 JVM 一起组成 JRE 的还有 一些 API (如 awt , swing 等), JRE 是 运行 Java 程序必不可少的.
3、JDK -- java development kit
JDK是java开发工具包,基本上每个学java的人都会先在机器 上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的 是以下四个文件夹:bin、include、lib、 jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包 含JVM。
bin:最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境
(注意:这里的bin、lib文件夹和jre里的bin、lib是 不同的)总的来说JDK是用于java程序的开发,而jre则 是只能运行class而没有编译的功能。
eclipse、idea等 其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你 选中jre路径就ok了。
二、 三者联系
Java 喊出的带有标志性的口号“ Write Once , Run Anywhere (一次编写,到处运行)”,正是建立在 JRE 的基础之上。何以实现?就是在 Java 应用程序和操作系统之间增加了一虚拟层—— JRE 。
程序源代码不是直 接编译、链接成机器代码,而是先转化到字节码( bytecode ) 这种特殊的中间形式,字节码再转换成机器码或系统调用。前者是传统的编译方法,生成的机器代码就不可避免地跟特殊的操作系统和特殊的机器结构相关。
而 Java 程序的字节码文件可以放到任意装有 JRE 的计算机运行,再由不同 JRE 的将它们转化成相应的机器代码,这就实现了 Java 程序的可移植性。这样程序员也不用去 关心程序运行的具体环境,而可以专心编写软件。这种分层抽象、隐藏细节的思想在计算机科学中处处可见,比如机器组织结构的设计、网络协议的实现等。 Pascal 语言的发明者 Niklaus Wirth ,就富有预见性地指出应该有这样一种可移植的语言,其生成的中间代码可以在一台假想的机器( a hypothetical machine )上运行。
而 Java 虚拟机( Java virtual machine 或 JVM )就是这样的一台机器,它模拟实际处理器的结构,解释字节码。 怎么一会说是 JRE ,一会儿又成了 JVM ,两者是否同物不同名? 回答是否定的。
JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。
要运行Applet,在客户端必须安装有 JRE,即“运行时”,容易一点理解,就象所谓的“插件”,要开发JAVA应用程序\Web应用,就必须在服务器端安装相应的 JVM+JDK 了(开发应用 Java web应用 时,客户端不需要安装任何的JVM)
如果你使用JAVA开发应用,就需要安装 JRE+JDK,就是 J2SE.
如果在客户端运行Applet,客户端浏览器必须嵌有JAVA JVM,如果没有,就需要安装,即: 在客户端创建JRE(运行时,包含JVM),而客户端是不需要做开发的,所以,JDK就没有必要安装 了。
不同版本的Applet在不同的JVM下可能无法正常运行,而Microsoft JVM只是Sun JVM的“低版本”,微软在windows xp/2003中干脆将JVM去掉了.

热心网友 时间:2022-04-14 05:42

这三个是相互存在且关联的:

JDK(Java Development Kit Java开发工具包)

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了。

其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

总结来说就是,使用JDK开发完成的java程序,然后再交给JRE去运行。


JRE(Java Runtime Environment Java运行环境)

包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

简单说就是Java程序的运行是需要有JRE,作为程序运行比不可少的环境!


JVM(JVM Java Virtual Machine  JAVA虚拟机)

我们知道JAVA是跨平台的,为什么呢?因为他有一个jvm,不论那种硬件,只要你装有jvm,那么他就认识这个JAVA字节码至于底层的机器码,咱不用管,有jvm搞定,他会把字节码再翻译成所在机器认识的机器码~~~

这也就是Java中广为人知的特点,一次编译、多处运行!

JVM,JRE,JDK各是什么含义?之间的关系

1. JVM(Java Virtual Machine)是Java虚拟机的缩写,它是一种规范,用于在各种计算设备上仿真模拟计算机功能。2. JRE(Java Runtime Environment)是Java运行环境的缩写,由Sun Microsystems开发,它是一个软件,允许计算机系统运行Java应用程序。3. JDK(Java Development Kit)是Java语言的开发工具包,主...

什么叫单片机???????

单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。 单片机的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。在没有被开发前,单片机只是一片超大规模集成电路, 什么也做不了。 必须对它编程,赋予它特定的运行程序,它才成为一个最小的、完整的微型计算机控制系统。单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通...

JDK、JRE、JVM有什么区别?有什么关系?

JDK是给开发人员用的,JRE和JVM是普通用户用的。详细介绍 JDK JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称...

JDK、JRE和JVM是什么?他们的区别又是什么?天津java培训

区别:1、JDK用于开发,JRE用于运行java程序 ;2、JDK和JRE中都包含JVM ;3、JVM是java编程语言的核心并且具有平台的独立性。

JVM、JRE、JDK有什么联系和区别

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。由上图一目了然:JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标...

JDK、JRE、JVM,是什么关系?

JDK(Java Development Kit)是 Java 开发工具包,包含了 JRE 以及各种开发工具,如编译器、调试器等,用于构建和运行 Java 应用程序。JRE(Java Runtime Environment)是 Java 运行环境,它包括了 JVM、Java 核心类库以及 Java 标准类库,使得 Java 应用程序可以在没有源代码的情况下在任何支持 JRE 的...

什么是jvm,jre,jdk及它们之间的关系

JDK:Java开发工具包 JDK,JRE,JVM三者关系概括如下:JDK是JAVA程序开发时用的开发工具包,其内部也有Java运行环境JRE。JRE是Java程序运行时需要的运行环境,就是说如果你光是运行Java程序而不是去搞开发的话,只安装JRE就能运行已经存在的Java程序了。JDk、JRE内部都包含JAVA虚拟机JVM,JAVA虚拟机内部包含...

JVM JRE和JDK区别与联系

探讨JVM、JRE和JDK之间的区别与联系,我们需要从基础概念开始。JVM即Java虚拟机,是Java语言跨平台性的核心。它允许编写的Java代码在不同操作系统上执行,无需针对特定平台重新编译。通过在每一个操作系统上配置对应的JVM,Java代码被翻译成该系统能识别的指令,从而实现跨平台执行。JRE即Java运行环境,由...

JRE与JVM、JDK的区别

总结来说就是,使用JDK开发完成的java程序,然后再交给JRE去运行。JRE(Java Runtime Environment Java运行环境)包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。简单说就是Java程序的运行是需要有JRE,作为程序运行比不...

面试题支招-JDK,JVM 和 JRE三者的联系和区别

JVM,Java Virtual Machine,是Java虚拟机,它是一种计算设备的规范,模拟计算设备功能以实现Java程序的跨平台执行。JVM是Java程序执行的核心,确保了Java语言的平台独立性。结合上述信息,我们得出以下区别与联系:1. JDK用于开发Java程序,包含了JRE和开发工具。JRE则是运行Java程序所需的环境,包含了JVM和...

问JAVA中 JDK JVM JRE三者的关系区别

1.定义JDK:Java Develpment Kit java 开发工具JRE:Java Runtime Environment java运行时环境JVM:java Virtual Machine java 虚拟机2. 使用人群jdk 是给开发人员使用的, jre和jvm是给普通用户使用3. 详细介绍JDK:是java开发工具包,是Sun公司针对java开发人员的产品,jdk中包含jre,在jdk的安装目录下...

JDK 和 JRE 有什么区别 jdk和jre的区别和联系 jdk跟jre的区别 简述jre和jdk的区别 java中jdk和jre的区别 jdk和ide的区别 java 抽象类和接口的区别 jdk与jre的概念与关系 java和jdk区别
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
鹦鹉鱼缸养什么最好最旺财 怎么养好热带鱼红鹦鹉与地图ɱ 5人投资15万买了一套房有出5万的有出4万的有出2万的,房子卖了10万元,5... 为什么热带鱼鹦鹉鱼与地图鱼不能混养?谢谢! 有什么平价切好用的BB 霜? 卧室可以摆放千年木吗? 自然堂bb霜多少钱一瓶?修饰毛孔素颜肌 你好,我在楼里开了一个美容私人工作室,我需要办营业执照吗? 《行政职业能力测验》是考些什么东西的 需要从哪方面着手找资料 详情见... 行政职业能力测验历年难题材详解目录 一台显示器怎么控制两台电脑? 点淘邀请新人奖励金在哪 磨牙饼干有必要买吗 200分 java 程序 jre 打包 exe文件 简单方法 如何用一个鼠标同时控制两台电脑? 如果有女的发图 你要不要饼干 我该怎么办 求教java用jre自带工具unpack200,pack200解压缩jar包,导致jar包不可用,是什么原因? 你好,我是返利app新人,有一个支付宝红包30,是不是我买一个超过30元 JRE和JDK的区别是什么? [image]30 哪些购物APP有新人无门槛红包的?? 同一局域网下监控多台电脑怎么实现? - 信息提示 jre那些文件删除压缩 我问女友要不要饼干,然后女友问什么饼干,我该怎么回? 【急】java打包成exe文件怎么样能在没装jre的电脑上运行? 淘菜菜新人红包过期了还能再领吗 JAVA 语言中IDE,JDK,JRE是什么,JAR,JAVA,CLASS文件中分别是什么东西 在网上看到好多推荐各种APP新人有红包,有些月入几十万,这些事是真的吗 什么是jvm,jre,jdk及它们之间的关系 毒app现金红包能提现吗 s6狐狸要饼干吗 新人在17k写了小说,把身份证信息都填好了,读者给我打赏了15元红包,签约后17k怎么给我? 晚上喝牛奶时要吃一些饼干吗 为什么黑洞大冒险做任务领红包新人只能领一次,然后就不能领了? 一台电脑怎么控制多台的? 为什么我双击打包好的jar文件总是压缩文件,不能够运行我的程序,这是为什么,我机子安装了jre 今天有个淘宝新人红包,15元,下午还能用,怎么到现在晚上了就没了 做饼干一定要饼干粉吗 我下载的java在使用jar的时候,打好多后总是以压缩格式显示,为什么, 饼干要怎么做呢? 怎么设置一套鼠标键盘控制多台电脑 做饼干要准备好哪些材料 怎样实现局域网内同时同步控制多台电脑 想要饼干酥脆就离不开黄油吗? 怎么用一个键盘一个鼠标控制多台电脑 如何实现局域网,一台电脑主机对多台电脑的控制 做饼干需要什么材料? 我今天买了饼干、现在我要去买饼干,两种说法是一个意思吗? 一个键盘控制多台电脑要怎么做 怎么做馒头没酵母味