java运⾏环境(jre)_什么是JRE?Java运⾏时环境简介
java运⾏环境(jre)
Java开发⼯具包(JDK),Java虚拟机(JVM)和Java运⾏时环境(JRE)共同形成了强⼤的Java平台组件三部曲,⽤于开发和运⾏Java 应⽤程序。 我之前和 在本快速教程中,您将学习JRE,它是Java的运⾏时环境。
实际上, 运⾏时环境是⼀种旨在运⾏其他软件的软件。 作为Java的运⾏时环境,JRE包含Java类库,Java类加载器和Java虚拟机。 在此系统中:
类加载器负责正确加载类并将它们与核⼼Java类库连接。
JVM负责确保Java应⽤程序具有在设备或云环境中运⾏和良好运⾏所需的资源。
JRE主要是那些其他组件的容器,并负责协调它们的活动。
在以下各节中,我们将更深⼊地研究这些组件如何协同⼯作。
安装JDK,JRE和JVM
从安装⾓度来看,⽆论何时 ,它都将包含⼀个版本兼容的JRE,并且该JRE将包含⼀个默认的JVM。 您还可以从JDK单独下载JRE,并且可以从各种JVM中进⾏选择。 默认值在⼤多数实现中都能很好地⼯作,特别是在您开始使⽤Java时。
什么是运⾏时环境?
软件程序需要执⾏,并且为此需要运⾏环境。运⾏时环境将加载类⽂件,并确保可以访问内存和其他系统资源来运⾏它们。 过去,⼤多数软件都使⽤操作系统(OS)作为其运⾏时环境。 该程序可以在所⽤的任何计算机上运⾏,但都依赖于操作系统设置来进⾏资源访问。 在这种情况下,资源将是诸如内存和程序⽂件以及相关性之类的东西。 Java Runtime Environment改变了所有这些,⾄少对于Java程序⽽⾔。
WORA for Java
最初引⼊Java时,Java的“编写⼀次,随处运⾏”的原则被认为具有⾰命性,但如今,它已被⼤多数软件系统采⽤。
Java运⾏时环境
我们可以将软件视为位于系统硬件之上的⼀系列层次。 每⼀层都将提供其上⼀层将使⽤(和要求)的
服务。 Java运⾏时环境是在计算机操作系统之上运⾏的软件层,提供特定于Java的附加服务。
JRE简化了操作系统的多样性,确保Java程序⼏乎可以在任何操作系统上运⾏⽽⽆需修改。 它还提供增值服务。 ⾃动内存管理是JRE最重要的服务之⼀,可确保程序员不必⼿动控制内存的分配和重新分配。
简⽽⾔之,JRE是⼀种⽤于Java程序的元OS。 这是⼀个抽象的经典⽰例,将底层操作系统抽象到运⾏Java应⽤程序的⼀致平台中。JRE如何与JVM配合使⽤
是运⾏中的软件系统,负责执⾏实时Java程序。 JRE是磁盘上的系统,它使⽤Java代码,将其与必要的库组合在⼀起,然后启动JVM来执⾏它。
JRE包含Java程序需要运⾏的库和软件。 例如, 是Java运⾏时环境的⼀部分。 这个重要的软件将编译后的Java代码加载到内存中,并将代码连接到适当的Java类库。java可以开发什么软件
在我刚刚描述的分层视图中,JVM是由JRE创建的。 从包的⾓度来看,JRE包含JVM,如图1所⽰。
jw whatisjre图1
马修·泰森(Matthew Tyson)
图1.分层的架构视图显⽰JRE包含JVM,类加载器和Java类库
安装和使⽤JRE
JRE有⼀个概念⽅⾯,在实际操作中,它只是安装在计算机上的软件,其⽬的是运⾏Java程序。 作为开发⼈员,您将主要使⽤JDK和JVM,因为它们是⽤于开发和运⾏Java程序的平台组件。 作为Java应⽤程序⽤户,您将更多地参与JRE,它使您可以运⾏那些程序。
在⼤多数情况下,您的计算机将安装Java,并且JRE将包含在其中。 如果确实需要⼿动安装或升级,则可以从Oracle 。
JRE版本
Java运⾏时环境针对Java的每个新版本进⾏了更新,并且其版本号与Java平台版本控制系统保持⼀致,因此,例如JRE 1.8运⾏Java8。尽管您可以选择各种JDK软件包(例如Enterprise Edition)或标准版),⽽JRE并⾮如此。 ⼤多数计算机都运⾏针对Java SE开发的JRE,该JRE能够运⾏任何Java应⽤程序,⽽不管其开发⽅式如何。 ⼤多数移动设备都随附有⽤于Java ME的JRE,该JRE已预先安装在移动设备上,⽆法下载。
安装JRE后,您可以在命令⾏上输⼊java -version与之交互,这将告诉您所安装的版本。 在POSIX系
统上,您始终可以检查which java的安装位置。
devops中的JRE
JRE在开发阶段并不是很引⼈注⽬,在J阶段,它仅在您选择的OS或IDE中运⾏程序。 JRE在开发和系统管理中扮演着更为重要的⾓⾊,因为它⽤于监视和配置。
基本上,JRE提供了⽤于配置和控制Java应⽤程序特征的“旋钮”。 内存使⽤是⼀个很好的例⼦,它是系统管理的基础。 尽管内存使⽤始终很重要,但它在云配置中⾄关重要,⽽devops是基于云的技术。 如果您在devops环境中⼯作,或者对分⽀到devops感兴趣,那么最好了解Java内存的⼯作⽅式以及如何在JRE中对其进⾏监视。
Devops还是sysadmin?
Devops是⼀个新术语,但它描述了⼏⼗年来⼀直存在的事实,即开发与运营之间的互操作性。 从这个意义上讲, devops只是过去称为操作或系统管理的较新术语。 像sysadmin⼀样,devops的重要⽅⾯是管理执⾏软件所必需的系统。 管理JRE是管理运⾏Java应⽤程序的系统的⼀部分。
Java内存和JRE
Java内存由三个组件组成:堆,堆栈和元空间(以前称为permgen)。
元空间是Java保持程序不变信息(例如类定义)的地⽅。
堆空间是Java保留变量内容的地⽅。
堆栈空间是Java存储函数执⾏和变量引⽤的地⽅。
Java 8中的内存管理
在Java 8之前,元空间被称为permgen。 除了名称更酷之外,元空间是开发⼈员与Java内存空间交互⽅式的重⼤变化。 以前,您将使⽤命令java -XX:MaxPermSize监视permgen空间的⼤⼩。 从Java 8开始,Java会⾃动增加元空间的⼤⼩,以适应程序的元需求。 Java 8还引⼊了⼀个新标志MaxMetaspaceSize ,该标志可⽤于限制元空间的⼤⼩。
其他内存选项(堆和栈)在Java 8中保持不变。
配置堆空间
堆空间是Java内存系统中最动态的部分。 您可以使⽤-Xms和-Xmx标志来告诉Java启动堆的⼤⼩以及允许堆⼤⼩的⼤⼩。 了解如何针对特定程序需求调整这些标志是Java内存管理的重要⽅⾯。 理想的做法是使堆⾜够⼤,以实现最有效的垃圾收集。 也就是说,您想要允许⾜够的内存来让程序运⾏,但是您不希望它的⼤⼩超出必要。
配置堆栈空间
堆栈空间是函数调⽤和变量引⽤排队的地⽅。 堆栈空间是Java编程中第⼆臭名昭著的错误的根源:堆栈溢出异常(第⼀个是空指针异常)。 堆栈溢出异常表⽰您已⽤完堆栈空间,因为已预留了太多空间。 通常,当⼀个或多个⽅法以循环⽅式相互调⽤时,您会得到堆栈溢出,从⽽将越来越多的函数调⽤投⼊到堆栈中。
您可以使⽤-Xss开关来配置堆栈起始⼤⼩。 然后,堆栈会根据程序的需要动态增长。
Java应⽤程序监控
尽管应⽤程序监视是JVM的功能,但是JRE提供了配置选项,这是监视的必要基准。 从经典⼯具(例如Unix command top )到复杂的远程监视解决⽅案(例如Oracle的基础架构监视),可以使⽤多种⼯具来监视Java应⽤程序。
在这些选项之间是可视分析器,例如 ,可⽤于检查正在运⾏的JVM。 这些⼯具使您能够跟踪热点和内存泄漏,以及查看系统中的整体内存消耗。
结论
Java运⾏时环境是⼀种磁盘程序,它加载Java应⽤程序以使JVM执⾏。 下载Java开发⼯具包时,默认情况下会包含JRE,并且每个JRE都包含核⼼Java类库,Java类加载器和Java虚拟机。 了解JVM,JDK和JRE的交互⽅式⾮常有帮助,特别是在云和devops环境中⼯作时。在这些环境中,与传统的Java应⽤程序开发相⽐,JRE在监视和配置中扮演着更重要的⾓⾊。
这个故事“什么是JRE?Java运⾏时环境简介”最初由发布。 。
java运⾏环境(jre)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论