Java SE Runtime Environment(JRE)是Java SE平台的标准版运行环境,它包含了java虚拟机(JVM)和Java核心类库,使得Java程序能够在各种平台上运行,实现了“一次编写,到处运行”的理念。JRE提供了丰富的API和库,支持各种Java应用程序的开发和运行。此外,JRE还包括两项关键的部署技术:Java插件和Java Web Start。Java插件可以使小程序在常用浏览器中运行,而Java Web Start则可以通过网络部署独立的应用。
基本介绍
1、Java SE Runtime Environment 共享类库需要在GAC(Global Assembly Cache)中注册,注册过程比较复杂,首先要用工具生成公开/私有密钥对,然后结合密钥和类库版本号连编,最后使用工具注册到GAC中好以后,会被放在”C:Winntassemblygac类库的名称空间版本号”目录下,不同的类库版本在注册的时候会按照版本号分开放置:
·某类库1.0版本 C:Winntassemblygac名称1.0名称.dll
·某类库1.1版本 C:Winntassemblygac名称1.1名称.dll
2、可以同时存在一个类库的n个版本,至于在程序中用哪个版本,在程序的配置文件中声明,CLR会根据声明来调用相应的版本的类库。我觉得.Net实现方法未免太复杂了一些,将所有共享类库都塞到一个系统目录下,并且同一个类库还有n个版本,将来.Net第三方开发的类库逐渐丰富起来以后,.Net类库的GAC也会越来越庞大,会不会也搞得和Windows注册表一样难以维护?软件发布到服务器上的时候,类库要再注册一次,服务器会逐渐形成一个庞大的树状的GAC,GAC里面存放着组件的n个版本。试想经过一段时间之后,C:Winntassemblygac目录会越来越庞大,有的组件甚至有n个版本都放在那里,你又不敢随便删除,不知道是不是有程序需要使用,我不明白MS为什么要把这么简单的事情搞到这么复杂?
讨论:全局程序集缓存不会是无限大的,所以“将来.Net第三方开发的类库逐渐丰富起来以后,.Net类库的GAC也会越来越庞大,会不会也搞得和Windows注册表一样难以维护?”这是杞人忧天。原因如下:第一是操作系统的生命周期一般不会是无限长的,而且越来越短,Windows为证,同时.Net Framework也在不断更迭,在十年左右的时间里,全球的程序产量是有限的,高质量的第三方开发的类库更是有限,需要注册到GAC的就更少了。
软件功能
Java虚拟机:JRE的核心部分是Java虚拟机,它负责解释和执行Java字节码。这意味着Java程序可以在任何支持JVM的操作系统上运行,无需进行重新编译。
Java核心类库:JRE还包含了Java的核心类库,这些库提供了标准化的服务和功能,例如输入输出操作、数据结构、算法等。
部署技术:JRE还包括两项关键的部署技术:Java插件和Java Web Start。Java插件允许小程序在常用的浏览器中运行,而Java Web Start则可以用来通过网络部署独立的应用程序。
安全性:JRE提供了强大的安全机制,包括对代码签名和权限管理的改进,以防止恶意代码的执行。
兼容性:JRE在保持与旧版本的兼容性的同时,也支持更多的操作系统和硬件平台,使得Java程序能够在更广泛的范围内运行。
软件特色
安全性:JRE提供了多种安全特性,包括访问控制、字节码验证和安全管理器。这些特性确保Java应用程序在运行时不会损害用户的数据或系统安全。此外,Java的安全模型还提供了沙箱机制,可以限制应用程序对系统资源的访问,从而防止恶意代码的执行。
高性能:随着Java技术的不断发展,JRE的性能也在不断提升。Java虚拟机通过即时编译(JIT)等技术,将Java字节码转换为本地机器码,从而提高了程序的执行效率。同时,Java的内存管理和垃圾回收机制也确保了程序在运行时能够高效地使用内存资源。
丰富的类库:JRE包含了Java核心类库,这些类库提供了大量的API供开发者使用,可以简化开发过程,提高开发效率。开发者可以利用这些类库来构建各种类型的应用程序,包括桌面应用、Web应用、移动应用等。
良好的兼容性:Java SE Runtime Environment与各种Java开发工具和应用服务器都具有良好的兼容性。这意味着开发者可以使用多种开发工具和框架来编写Java应用程序,并且这些应用程序可以在多种应用服务器上运行。这种良好的兼容性使得Java成为企业级应用开发的首选语言之一。
注意事项
1、共享类库需要在GAC(Global Assembly Cache)中注册,注册过程比较复杂,首先要用工具生成公开/私有密钥对,然后结合密钥和类库版本号连编,最后使用工具注册到GAC中好以后,会被放在”C:Winntassemblygac类库的名称空间版本号”目录下,不同的类库版本在注册的时候会按照版本号分开放置:
·某类库1.0版本 C:Winntassemblygac名称1.0名称.dll
·某类库1.1版本 C:Winntassemblygac名称1.1名称.dll
2、可以同时存在一个类库的n个版本,至于在程序中用哪个版本,在程序的配置文件中声明,CLR会根据声明来调用相应的版本的类库。我觉得.Net实现方法未免太复杂了一些,将所有共享类库都塞到一个系统目录下,并且同一个类库还有n个版本,将来.Net第三方开发的类库逐渐丰富起来以后,.Net类库的GAC也会越来越庞大,会不会也搞得和Windows注册表一样难以维护?软件发布到服务器上的时候,类库要再注册一次,服务器会逐渐形成一个庞大的树状的GAC,GAC里面存放着组件的n个版本。试想经过一段时间之后,C:Winntassemblygac目录会越来越庞大,有的组件甚至有n个版本都放在那里,你又不敢随便删除,不知道是不是有程序需要使用,我不明白MS为什么要把这么简单的事情搞到这么复杂?
讨论:全局程序集缓存不会是无限大的,所以“将来.Net第三方开发的类库逐渐丰富起来以后,.Net类库的GAC也会越来越庞大,会不会也搞得和Windows注册表一样难以维护?”这是杞人忧天。原因如下:第一是操作系统的生命周期一般不会是无限长的,而且越来越短,Windows为证,同时.Net Framework也在不断更迭,在十年左右的时间里,全球的程序产量是有限的,高质量的第三方开发的类库更是有限,需要注册到GAC的就更少了。
更新介绍
– “G1 增强功能 (JEP156): 限制了长期停顿的可能性,释放系统资源。G1依靠全面的垃圾收集(Garbage Collections)以执行分类卸载,并减少任何其他的关键性操作。
– Java Flight Recorder (JFR)的动态支持: 为了简化Oracle Java SE Advanced使用性,JFR现在能够命令行或Java任务控制(JMC)中的动态启动,无论其是否是原始的启动参数都可实现。JFR的动态启动让用户无需停止工作也能解决生成问题。
– 增强本地包装程序:允许开发人员在不安装现有的Java Runtime的基础上创建本地应用。这些独立的应用能够在如Mac应用商店的区域内进行部署。应用开发人员可全面控制运行时间和应用输入口。
– 新的日期更新工具:这个工具能够从IANA时期注册表数据库中消耗“初始”的数据(tzdata)规则,并把其转换成JRE所需要的格式。这让用户通过升级最新的IANA就能同时实现JDK/JRE时区的更新。
– 支持Nashorn:该版本拥有大量的Nashorn优化功能,包括对动态语言的支持等等。同时新版本还增加了Nashorn 分类过滤器,可以通过全新的过滤界面从JavaScript编码中对Java分类进行精细管控。
– 针对内存压力的JVM反馈: “内存压力” 是代表系统总体内存使用(RAM)的一个特性。这个新特性可以在部署多个JVM的系统中降低内存的消耗,并将其在每个JVM内的大小控制在一定的范围之内,避免因内存不足而引发的问题(OOMEs)。
– Java 任务控制 5.5 (JMC): 这个工具现在已经和JDK 8u40进行捆绑。基于Eclipse 4.4,JMC 5.5包含了现在已经签署的插件,并拥有默认隐藏Lambda 格式的隐藏方式。
– Lambda 格式的减少和缓存 (JEP 210): 这个增强功能可以为应用减少所需的内存足迹,同时提高了动态语言的性能。
– 本地内存跟踪扩展性 (JEP 195): 这个功能已经得以提升,让其运行时不会产生显著的性能影响。同时,该功能让用户可以自行诊断Java虚拟机(JVM)内存泄露。
– 增强SHA算法的加密性: SPARC类型系统的性能已经得到提高,这些系统在网络信任中通过签署证书而被大量使用。SHA性能对互联网安全很重要,因为浏览器已经开始使用计算更昂贵的SHA-256版本或者更高版本,SHA-1正在逐渐被淘汰。
新推的JavaFX特点和增强功能包括:
– 能够在Mac OS X上实现JavaFX堆栈现代化(JEP 206):JavaFX媒介堆栈已经从不适用于QTKit和 Quicktime迁移到更新的AVFoundation 架构中, 全面适配Mac OS X。 该功能帮助使用JavaFX媒体堆栈的开发人员有机会在Mac应用商店上发布他们的应用。
– JavaFX 访问性 (JEP 204):现有的JavaFX控制功能已经得到增强,并为开发人员提供了公用的API,让其可以编写自己的访问控制程序。
– 当前的Java SE版本可用于一般计算使用,在Oracle网站上无需付费。如欲获取,终端用户可访问这里,开发人员可访问 这里
软件特别说明
解压密码统一为下载之家网址:www.downza.cn