科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 3291 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2009-03-11
admin
admin
发短消息
相关词条
SIM卡
SIM卡
WEBSPHERE
WEBSPHERE
FTP
FTP
並行計算
並行計算
国外计算机科学状况
国外计算机科学状况
混龄教育
混龄教育
学科信息门户
学科信息门户
UBUNTU
UBUNTU
恩尼格玛
恩尼格玛
广播工程师
广播工程师
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

中科永联高级技术培训中心(www.itisedu.com

      JREJava Runtime EnvironmentJava运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心库。

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

      JavaPlug-in软件允许Javaapplet和JavaBeans组件在使用Sun的JavaRuntimeEnvironment(JRE)的浏览器中运行,而不是在使用缺省的Java运行环境的浏览器中运行。JavaPlug-in可用于NetscapeNavigator和MicrosoftInternetExplorer。

      J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK。在JDK中附带有JRE。注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK。

一、JRE的版本管理

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

      我的机器上已经被安装了好多套JRE和JDK了(JDK包括了同版本的JRE,此外还包括有编译器和其它工具),它们分别是:
 
BEA Weblogic Server 7.0 自带一套 JDK1.3.1_02
我下载了一套最新的JDK1.4.1_02
JBuilder9自带一套JKD1.4.1_02
Oracle8.1.7自带一套JRE1.1.7
Ration Rose自带一套JDK1.3
DreamWeaver自带一套JDK1.3

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

先找当前目录下有没有JRE
再找父目录下有没有JRE
接着在PATH路径中找JRE
注册表HKEY_LOCAL_MACHINESOFTWAREJavaSoftJava Runtime Environment 查看CurrentVersion的键值指向哪个JRE

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

      .Net Framework的版本管理

      .Net Framework被固定安装在C:WinntMicrosoft.NETFrameworkv版本号目录下,并且在同一台机器只能安装一套,要安装1.1版本的.Net Framework,就必须先删除1.0的。听说刚发行的.Net Framework1.1已经对1.0做了很多改进,甚至基础类库的层次也有所变动。看来在旧版本的.Net Framework开发的程序将来往新版本上面迁移的时候少不了修改程序代码。

二、JRE的基础类库

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

      .Net Framekwork的核心类库

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

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

三、JRE类库的查找方法和版本管理

      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程序当前路径下,或其相对路径中,只有当前程序可见。
      共享类库需要在GAC(Global Assembly Cache)中注册,注册过程比较复杂,首先要用工具生成公开/私有密钥对,然后结合密钥和类库版本号连编,最后使用工具注册到GAC中好以后,会被放在"C:Winntassemblygac类库的名称空间版本号"目录下,不同的类库版本在注册的时候会按照版本号分开放置:
      ·某类库1.0版本 C:Winntassemblygac名称1.0名称.dll
      ·某类库1.1版本 C:Winntassemblygac名称1.1名称.dll

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

 

 

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: JRE

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。