龙空技术网

Java运行时环境JRE的详细介绍

春风不负韶华YB 270

前言:

目前你们对“运行java软件的电脑是不是都要装jre软件”可能比较关心,咱们都需要知道一些“运行java软件的电脑是不是都要装jre软件”的相关内容。那么小编同时在网摘上网罗了一些关于“运行java软件的电脑是不是都要装jre软件””的相关资讯,希望各位老铁们能喜欢,看官们一起来学习一下吧!

这是一篇翻译文章,如果想要原文地址的,可以私信我获取。

JDK(Java Development Kit)、JVM(Java Virtual Machine)和JRE(Java Runtime Environment)是Java程序开发和运行的三个非常重要和强大的组成部分。在这之前我已经介绍了JDK(查看详情)。在这篇文章中,我将向各位介绍Java的运行时环境---JRE。

实际上,运行时环境是设计用来运行其它软件的一个软件。作为Java的运行时环境,JRE包含了Java的各种基础类库、Java类加载器和Java虚拟机。在这个系统中:

类加载器负责正确加载类,并将它们与核心的Java类库链接到一起。JVM负责提供资源,以确保Java程序能够正常运行,并且在我们设备或者云环境中良好运行。JRE主要用于其它组件的容器,负责协调其活动。

从安装的角度来看,在任何时候安装JDK,它都会同时安装一个与其版本匹配的JRE,并且这个JRE会包含一个默认的JVM。当然我们也可以自己单独下载JRE,并且可以选择自己喜欢的JVM。绝大多数时候我们只需要选择某人的JRE和JVM即可,特别是当我们刚刚接触Java的时候。

什么是运行时环境?

当需要执行一个程序的时候,就需要有一个合适的环境来运行它。运行时环境会加载类文件并且确保可以访问内存和其它资源来运行它们。在过去,很多软件都使用操作系统作为他们的运行环境。软件可以在任何的计算机上运行,但是会依赖计算机上的操作系统设置来访问资源。在这里,资源可以是内存、程序文件或者各种其它依赖。对于JRE而言,这一切都不是这样的。

在最开始Java提出的“一处编写,处处运行”的原则被认为是革命性的。现如今,这个原则已经被许多的其它的系统或者编程语言所采纳。

Java运行时环境

我们可以把Java软件看成是一栋建立在操作系统这块大地上的高楼大厦。大厦的每一层都会提供服务支撑着它的上一层,并且会依赖于他们的下一层。Java运行时环境就是这栋高楼大厦最下面的一层,他直接和大地(操作系统)对接,并且提供统一的服务(Java各种系统类库和API)给上面一层(我们写的代码程序)。

JRE屏蔽了各个操作系统之间的差异,从而实现了无需修改代码就能够让程序在各个操作系统中运行。同时JRE还提供了很多的增值服务,比如:自动内存管理。自动内存管理是JRE中最为重要的功能之一,它确保了程序员不必再手动的控制内存的分配和释放。

简而言之,JRE就是一种特别的操作系统。他能够把各种底层的操作系统抽象为统一的、可运行Java程序的一致平台。

JRE是如何工作的

Java虚拟机是一个负责执行Java程序的软件系统。JRE则能够把我们写的代码和必要的Java类库结合起来,并且启动一个Java虚拟机来运行这些代码。

在JRE中包含了我们的程序运行所依赖的类库和软件,比如Java类加载器就是JRE的重要组成部分。

安装并使用JRE

虽然JRE有一个概念性的一面,但在现实世界中,它只是安装在计算机上的软件,其目的是运行Java程序。作为开发人员,我们主要使用JDK和JVM,因为它们是用来开发和运行Java程序的平台组件。作为Java应用程序用户,则更多的使用JRE,因为我们依赖它来运行程序。

绝大多数情况下,我们的电脑中都已经安装好了Java,里面也会包括JRE。如果想要自己安装或者升级JRE,则可以前往Oracle的Java网站上下载并安装。

JRE会随着Java的升级而升级,JRE的版本号也是采用的Java的版本号,所以JRE1.8所对应的就是Java 8。对于JDK我们会面临选择软件包类型的问题(比如Java EE或者Java ME),在JRE中则没有这个问题。绝大多数计算机都运行一个由Java SE开发的JRE,它能够运行任何Java程序。大多数的移动设备都会预装一个适配了Java ME的JRE,不过这个JRE我们无法下载到。

DevOps中的JRE

JRE在开发过程中作用并不是很明显,它主要是在我们的操作系统或者是IDE中运行。JRE在DevOps和系统管理中扮演着更为突出的角色,因为他能够用于监视和配置。

JRE提供了用于配置和控制Java程序的手段,比如系统管理中的内存使用查看等。如果你的工作会涉及到DevOps相关的内容,或者对DevOps比较感兴趣,那么熟悉和掌握各种JRE工具是非常重要的。比如通过JRE工具可以查看Java程序在运行过程中的内存分配和使用情况等。

DevOps是一个比较新的术语,但是它所描述的内容却是一个几十年来一直在做的事情:开发和操作之间的互操作性。

内存和JRE

Java内存由3个部分组成:堆(heap)、栈(stack)和元空间(metaspace)。

+ 元空间是用来存放程序中不会变更的数据的,比如类的定义等。

+ 堆是存放可变内容的。

+ 栈存放是Java存储函数执行和变量引用的地方。

Java程序监控

虽然应用程序监视是JVM的一个功能,但是JRE提供了配置选项,这是监视所必需的。各种工具可用于监视Java应用程序,从经典(如UNIX命令TOP)到复杂的远程监控解决方案,如Oracle的基础设施监控。如VisualVM,允许检查运行的JVM。这些工具能够跟踪热点和内存泄漏,以及监视系统中的整体内存消耗。

相关文章:

关于JDK的介绍

Java类加载器的工作原理

标签: #运行java软件的电脑是不是都要装jre软件 #javajre下载