我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解JRE和JVM的区别及有什么联系

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解JRE和JVM的区别及有什么联系

这篇文章将为大家详细讲解有关如何理解JRE和JVM的区别及有什么联系,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

你对JRE和JVM的概念是否熟悉,这里和大家分享一下两者的区别,所有的Java程序都要在JRE下才能运行。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分,首先让我们来看一下这两者的概念。

JRE和JVM的区别

◆JRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java程序都要在JRE下才能运行。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。

◆JVM(JavaVirtualMachine,Java虚拟机)是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。

如果安装了JDK,会发同你的电脑有两套JRE, 一套位于   <JDK安装目录> \jre ,另外一套位于   C:\Program   Files\Java\j2re1.4.1_01   目录下 。后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于   C:\Program   Files\Java   目录下的JRE。
如果你只安装JRE,而不是JDK,那么只会在   C:\Program   Files\Java 目录下安装***的一套JRE。

JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完   JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java   PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Java应用程序。

1、为什么Sun要让JDK安装两套相同的JRE?

这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在   <JDK安装目录> \lib\tools.jar   里。从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果:
Exception   in   thread   "main "   java.lang.NoClassDefFoundError:   com/sun/tools/javac/Main
这个意思是说,你输入javac.exe与输入

java   -cp   c:\jdk\lib\tools.jar   com.sun.tools.javac.Main 是一样的,会得到相同的结果。

从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现 <JDK安装目录> \lib目录下的程序都很小,不大于29K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\Program   Files\Java目录下的那套JRE就是用来运行一般Java程序用的。

2、如果一台电脑安装两套以上的JRE,谁来决定呢?

这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行Java程序。
Java.exe依照底下的顺序来查找JRE:

自己的目录下有没有JRE;

父目录有没有JRE;

查询注册表:

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java   Runtime   Environment]

所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。

3、介绍JVM

JRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。
jvm.dll   无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32   API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。
因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。

关于如何理解JRE和JVM的区别及有什么联系就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解JRE和JVM的区别及有什么联系

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解JRE和JVM的区别及有什么联系

这篇文章将为大家详细讲解有关如何理解JRE和JVM的区别及有什么联系,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。你对JRE和JVM的概念是否熟悉,这里和大家分享一下两者的区别,所有的Jav
2023-06-17

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

这篇文章主要介绍“JVM、JRE、JDK有什么区别和联系”,在日常操作中,相信很多人在JVM、JRE、JDK有什么区别和联系问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM、JRE、JDK有什么区别和联系
2023-06-17

Android中的URI和Uri类有什么区别和联系

本篇内容主要讲解“Android中的URI和Uri类有什么区别和联系”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中的URI和Uri类有什么区别和联系”吧!一、URI与Uri大家可
2023-06-02

公有云私有云的联系和区别是什么

公有云和私有云都是云计算的服务模式,但它们的区别在于:1. 所有权:公有云是由第三方服务商提供的,多个用户共享同一组硬件和基础设施;私有云则是由用户自己搭建和管理的,只有该用户能够使用。2. 安全性:公有云的安全性取决于服务商的安全措施,用
2023-06-17

如何理解HTML开发中.html和.htm和.shtml以及.shtm的区别与联系

如何理解HTML开发中.html和.htm和.shtml以及.shtm的区别与联系,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。大家都知道,我们每天浏览的网页或者网站或者w
2023-06-08

云服务器的操作系统有什么区别和联系

一、云服务器操作系统的区别资源利用率高。云服务器操作系统可以为用户提供更多的计算资源,如CPU、内存、存储等,从而满足用户对计算资源的需求。资源安全性更高。云服务器操作系统采用虚拟化技术,可以实现资源的共享和隔离,避免了单点故障和资源浪费等问题。资源动态分配。云服务器操作系统可以根据用户的需求动态分配计算资源,从而实现
2023-10-27

什么是物理服务器和云服务器的区别和联系

物理服务器和云服务器是两个不同的概念,它们之间有一些区别和联系。区别:物理服务器是一种基础设施,它通常包含硬件系统和基础设施软件(例如操作系统、数据库和存储系统等),用于支持物理存储设备,以及提供基础的功能和服务。云服务器是一种提供按需计算和存储的服务,它的目标是为多个用户和多个计算资源提供可扩展的计算资源,从而提高资源的利用率。云服务器是一种云计算服务,它可以将计算资源虚拟化,将其提供给多个用户和计算资源,...
2023-10-27

如何理解Java虚拟机及JVM体系结构是什么

今天就跟大家聊聊有关如何理解Java虚拟机及JVM体系结构是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JVM(Java 虚拟机)Java虚拟机,java源文件(.java)通
2023-06-17

云服务器的管理与运维的区别和联系是什么

与传统的基础运维工具(如操作系统、数据库、网络等)相比,云服务器管理与运维具有以下主要区别和联系:监控和管理更为精细:云服务器管理与运维提供了更加精细的监控和管理功能,例如自动化日志记录、自动警报和健康检查等,以便及时发现问题并进行处理。更高的自动化程度:与传统的基础运维工具相比,云服务器管理与运维具有更高的自动化程度,例如自动部署、自动配置和自动故障恢复等,可以提高运维效率,并减少人工干预的错误。...
2023-10-27

PHP中的Session和Cookie有何区别?如何应用?(请解释PHP中Session和Cookie的区别及它们的应用场景。)

Session和Cookie是用于在HTTP请求间存储用户数据的不同机制。Session存储于服务器端,持续时间限于会话,安全性较高,适用于存储会话相关信息;Cookie存储于客户端浏览器,持续时间更长,存储量有限,适用于存储持久偏好和设置。选择时考虑数据量、安全性、持续时间、用户隐私和浏览器支持等因素。
PHP中的Session和Cookie有何区别?如何应用?(请解释PHP中Session和Cookie的区别及它们的应用场景。)
2024-04-02

计算机软考与职称有关系吗?计算机软考与职称评定的区别和联系是什么

计算机软考与职称评定之间存在一定的关系,同时也存在一些区别。以下是对这两者之间关系、区别和联系的详细解析。
计算机软考与职称有关系吗?计算机软考与职称评定的区别和联系是什么
2024-10-10

中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?

在数据库中有一类用于保存中间计算结果的物理表,通常被称为“中间表”。中间表主要跟 OLAP(在线联机分析)业务有关,产生的原因主要有以下几方面。 中间表来源 1. 计算逻辑复杂 在 OLAP(报表或查询)业务中,有些计算逻辑很复杂,每次都从头写会导致报表开发
中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?
2017-07-23

如何理解Java中的泛型?泛型有哪些应用场景?(Java泛型概念是什么?它在哪些场合下特别有用?)

Java泛型允许创建类型独立的类和方法,使用类型参数表示抽象类型,从而消除原始类型和强制转换的需要。泛型广泛应用于:代码复用:创建可重用的代码,支持不同类型。类型安全:强制编译时类型检查,消除运行时类型错误。性能提升:避免原始类型和强制转换,提高代码性能。具体应用场景包括集合框架(如List)、算法(如类型独立的排序算法)、数据结构和泛型方法。通配符允许放松泛型类型限制,增加代码灵活性。
如何理解Java中的泛型?泛型有哪些应用场景?(Java泛型概念是什么?它在哪些场合下特别有用?)
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录