JRE是什么?

来源:TechTMT.Com  作者:整理  日期:2022-02-28 14:27:12

Java 运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,JRE 可以让计算机系统运行 Java 应用程序(Java Application)。

JRE

JRE 的内部有一个 Java 虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。

相关介绍

JRE 为 Java Runtime Environment 的简称,Java Runtime Environment(包括 Java Plug-in)是 Sun 的产品,包括两部分:Java Runtime Environment 和 Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的 Java 平台。它包括 Java虚拟机(jvm)、Java 核心类库和支持文件。它不包含开发工具(JDK)–编译器、调试器和其它工具。JRE 需要辅助软件–Java Plug-in–以便在浏览器中运行 applet。

Java Plug-in 软件允许 Java Applet 和 JavaBean 组件在使用 Sun 的 Java Runtime Environment(JRE)的浏览器中运行,而不是在使用缺省的 Java 运行环境的浏览器中运行。Java Plug-in 可用于 Netscape Navigator 和 Microsoft Internet Explorer。

J2RE 是 Java2 Runtime Environment,即 Java 运行环境,只是强调其匹配 Java2 平台,有时简称 JRE。如果你只需要运行 Java 程序或Applet,下载并安装它即可。如果你要自行开发 Java 软件,请下载 JDK(JRE 和 JDK 的区别)。在 JDK 中附带有 JRE。

版本管理

Java 的解决办法是每个程序自己携带一套 JRE。

比如说某人的机器上已经被安装了好多套 JRE 和 JDK(JDK 包括了同版本的 JRE,此外还包括有编译器和其它工具),它们分别是:

BEAWeblogic Server 7.0 自带一套 JDK1.3.1_02, 还下载了一套最新的 JDK1.4.1_02

JBuilder9 自带一套 JDK1.4.1_02

Oracle8.1.7 自带一套 JRE1.1.7

RationRose 自带一套 JDK1.3

DreamWeaver 自带一套 JDK1.3

6 套 JRE,每套 JRE 都被各自安装到不同的目录,不会互相影响。当在控制台执行 java.exe,操作系统寻找 JRE 的方式如下:

先找当前目录下有没有 JRE

再找父目录下有没有 JRE

接着在 PATH 路径中找 JRE

注册表 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看 CurrentVersion 的键值指向哪个 JRE

最常用的是在 PATH 路径中找 JRE,一般情况下,自己的程序运行之前都会先在批处理文件里面临时设置 PATH,把自己用的 JRE 放到 PATH 路径最前面,所以肯定会运行自己带的 JRE,不会造成版本混乱。

基础类库

JRE 自带的基础类库主要是 JRE\lib\rt.jar 这个文件,包括了 Java2 平台标准版的所有类库。和 JRE 的版本一致。

Net Framekwork 的核心类库

Net Framekwork 的核心类库被放置在 C:\Winnt\assembly\gac\目录下,按照不同的名称空间放在不同目录中,不像 JRE 打成了一个包。并且可以同时存在不同的版本,例如:

某类库 1.0 版本 C:\Winnt\assembly\gac\名称\1.0\名称.dll

某类库 1.1 版本 C:\Winnt\assembly\gac\名称\1.1\名称.dll

这样做,虽然很灵活,可以随时把类库更新到最新的状态,但是很容易带来版本管理的复杂度,造成版本不一致。

查找方法

JRE 中由 ClassLoader 负责查找和加载程序引用到的类库,基础类库 ClassLoader 会到 rt.jar 中自动加载,其它的类库,ClassLoader 在环境变量 CLASSPATH 指定的路径中搜索,按照先来先到的原则,放在 CLASSPATH 前面的类库先被搜到,Java 程序启动之前建议先把 PATH 和 CLASSPATH 环境变量设好,OS 通过 PATH 来找 JRE,确定基础类库 rt.jar 的位置,JRE 的 ClassLoader 通过 CLASSPATH 找其它类库。但有时候会出现这样的情况,希望替换基础类库中的类库,那么也可以简单的通过-Djava.endrosed.path=…参数传递给 java.exe,于是 ClassLoader 会先于基础类库使用 java.endrosed.path 参数指定路径的类库。因此 Java 的版本管理是非常简单有效的,也许很原始,不过很好用,简单就不容易出错。(所以我很奇怪 Eric Ramond 为什么批评 Java 的类库管理机制,他还居然批评 Java 的接口,令人怀疑他对 Java 的了解程度)

管理机制

分类

Net Framework 的类库管理机制 .Net Framework 的类库管理机制相当强大和复杂,分为私有类库和共享类库。

私有类库就放在 exe 程序当前路径下,或其相对路径中,只有当前程序可见。

分类:资讯
标签:是什么
编辑:tmt
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。文章版权归原作者所有,内容不代表本站立场!
免责声明: 阁下应知本站所提供的内容不能做为操作依据。本站作为信息内容发布平台,不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考! 如文中内容影响到您的合法权益(含文章中文字、图片等),请及时联系本站,我们会及时删除处理。