JRE的

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。

ava 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。注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK。

版本管理:

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程序当前路径下,或其相对路径中,只有当前程序可见。

注意事项

1、共享类库需要在GAC(Global Assembly Cache)中注册,注册过程比较复杂,首先要用工具生成公开/私有密钥对,然后结合密钥和类库版本号连编,最后使用工具注册到GAC中好以后,会被放在"C:\Winnt\assembly\gac\类库的名称空间\版本号\"目录下,不同的类库版本在注册的时候会按照版本号分开放置:

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

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

2、可以同时存在一个类库的n个版本,至于在程序中用哪个版本,在程序的配置文件中声明,CLR会根据声明来调用相应的版本的类库。我觉得.Net实现方法未免太复杂了一些,将所有共享类库都塞到一个系统目录下,并且同一个类库还有n个版本,将来.Net第三方开发的类库逐渐丰富起来以后,.Net类库的GAC也会越来越庞大,会不会也搞得和Windows注册表一样难以维护?软件发布到服务器上的时候,类库要再注册一次,服务器会逐渐形成一个庞大的树状的GAC,GAC里面存放着组件的n个版本。试想经过一段时间之后,C:\Winnt\assembly\gac\目录会越来越庞大,有的组件甚至有n个版本都放在那里,你又不敢随便删除,不知道是不是有程序需要使用,我不明白MS为什么要把这么简单的事情搞到这么复杂?

讨论:全局程序集缓存不会是无限大的,所以“将来.Net第三方开发的类库逐渐丰富起来以后,.Net类库的GAC也会越来越庞大,会不会也搞得和Windows注册表一样难以维护?”这是杞人忧天。原因如下:第一是操作系统的生命周期一般不会是无限长的,而且越来越短,Windows为证,同时.Net Framework也在不断更迭,在十年左右的时间里,全球的程序产量是有限的,高质量的第三方开发的类库更是有限,需要注册到GAC的就更少了。

时间: 2024-10-08 11:42:24

JRE的的相关文章

关于 JDK jre jvm

JDK 全名是 JAVA development kit  是JAVA语言的软件开发工具 包:是整个JAVA开发的核心,没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE. JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码: jar – 打包工具,将相关的类文件打包成一个文件: javadoc – 文档生成器,从源码注释中提取文档: jdb – debugger,查错工具: java – 运行编译后的java程序(.class后缀的):

jdk与jre的区别

jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等.jre(java runtime environment),就是java程序的运行环境.你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算机.而这个jvm就在jre中,也就是说java程序的运行要有jre来担当.所以jdk和jre的区别就是一个用于开发

linux下安装jre运行环境

上官网下载安装文件:点击打开链接 文件名:jre-8u65-linux-x64.gz安装步骤1.解压tar -xzvf jre-8u65-linux-x64.gz2.将解压后的文件放到/usr/lib/java 3.接下来需要使用vim或gedit来修改/etc/environment配置文件,在这个文件中增加如下的环境变量:JAVA_HOME="/usr/lib/java/jre1.8.0_65"CLASSPATH="$JAVA_HOME/lib"PATH=&qu

Java初学者不得不知的概念,JDK,JRE,JVM的区别?

JVM(Java Virtual Machine Java虚拟机) 可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式, 它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令. 让具体平台如window运行这些Java程序. JRE(Java Runtime Environment Java运行环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等, 如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即

jdk和jre是什么?都有什么用?(转帖)

jdk和jre是什么?都有什么用?(转帖) 文章分类:Java编程 大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做.由于这样更能帮助大家弄清楚它们的差别: Jre   是java   runtime   environment,   是java程序的执行环境.既然是执行,当然要包括jvm,也就是大家熟悉的虚拟机啦,   还有全部java类库的class文件,都在lib文件夹下打包成了jar.大家能够自己验证.至于在windows上的虚拟机是哪个文件呢

启动WebLogic时找不到JRE该怎么办(如果在WebLogic 上更改JDK)

The JRE was not found in directory C:\PROGRA~1\Java\jdk1.6.0_20. (JAVA_HOME) Please edit your environment and set the JAVA_HOME variable to point to the root directory of your Java installation. 请按任意键继续. . . 当你在启动WebLogic看到这样的字段时,说明WebLogic无法找到并访问你的J

如何从oracle官方网站下载旧版本的jdk jre

JAVA开发或使用时,有时候需要特定版本的jdk或jre,如何从官网下载呢?今天搜索无果,自己想起了一个方法:在官网搜索关键词 java archive,就可以找到历史版本的下载入口了.提示:下载时需要登陆oracle账号,没有账号注册一下就可以了.下载过程见下图: 1. 在oracle官网搜索 java archive 2. 在搜索结果中点击需要下载的大版本号 3. 到下载页下载相应的小版本号

JRE 和 JDK 的区别

JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的. JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的.JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序.如果

多个jdk 变更 引起 tomcat插件 启动不了 The JRE could not be found.Edit the server and change the JRE location.

The JRE could not be found.Edit the server and change the JRE location. 在Windows->Preferences->Server->Runtime Environments 选择Tomcat->Edit,在jre中选择相应的jdk版本,完事.

ubuntu下安装jre

jre下载地址:http://www.java.com/en/download/manual.jsp 1.将下载好的jre-7u55-linux-x64.tar.gz文件解压缩,得到jre1.7.0_55文件夹. 2.运行sudo mkdir /usr/lib/jvm 3.运行sudo mv ./jre1.7.0_55 /usr/lib/jvm 4.运行sudo gedit ~/.bashrc,环境变量设置. 在最后增加下面语句后,保存退出: export JAVA_HOME=/usr/lib/