Java SE 6 update 10 Beta 简介
不要被这个普普通通的名字所迷惑,即将发布的 Java SE6
update10(当前发布的是试用版)与之前的更新版本存在很大的差异。与之前发布的 java
严格地说,“Java更新发行版”只是对版本号的第四位(比如,对版本 1.6.0_10 的 10
)进行了改动。与大多数发行版不同,更新发行版本不允许添加、删除或者更改任何公共 API 函数,这样也将更新发行局限于对 bug
的修复。6u10 同样不包含新增的或经过修改的 API 函数,尽管如此,我们仍然成功地添加了一些令人难以置信的新特性。
为什么要发布特定更新?
Java 程序正常运行之后,通常是非常稳定的。当今的 Java 运行时环境(JRE)稳定、可靠且速度快。
不幸的是,因为历史原因,进入“正常运行”状态要比想象中困难得多。所面临的挑战包括:
很难检测 Java 运行时环境,特别是网页浏览器
很难自动安装新的运行时环境
下载量大
冷启动性能差
Applet 和 Web 启动程序重叠少
Java内核
JRE提供了许多不同的
API:Swing、AWT、ImageIO、SQL、CORBA、RMI、math、XML、XSLT、并发。太多了,而且每次发布新版本都会增加。虽
然丰富的 API 使 Java 软件的编写变得容易,但是 JRE 多年来始终保持稳健强大并不是一种巧合(由于可压缩性强,Java 2
Platform, Standard Edition 1.5 的下载量相对较小,未经压缩的 JRE 还是比较大的。)。
Figure 1: JRE Size in MB
Java 内核旨在使 Java 软件能够更快地进入运行状态。用户只需要下载一个小的安装程序(“内核”)就能基本包括所有需要的 JRE 组件,而不用下载完整的 JRE。需要的时候,用户可以下载额外的组件,JRE 会在后台下载余下的组件并自行组装。
Figure 2: Kernel Size in MB
目前,典型的 Swing 程序和 Java applets 下载大小是 4-5 MB,而完整的 JRE 是 14.4 MB。
更多关于 Java 内核的消息请参阅6u10 FAQ。
下一代 Java 插件
Java SE 6u10 包含一个全新的 Java 插件实现。只要您使用的是 Firefox 3 或者
Internet Explorer,它就是默认选项。下一代 Java 插件在浏览器外部的一个或者多个独立进程中运行 Java
applet。虽然 Jave 程序与以往一样出现在 Web 浏览器内部,但是这意味着现在可以使用不同的 JRE
版本、命令行参数和结构来运行不同的 Java 程序。通过运行两个非常大且非常复杂的软件—Web 浏览器和 JRE
提供的隔离,在独立的进程空间中提高了两者的可靠性,同时为 Java applets 提供了和其他 Java 软件一直享有的相同的灵活性以及对
JRE 结构的控制。
现在,Java applets 和 Java Web 启动程序拥有同样强大的 JRE 选择和配置特性,因此两者都应该使用同样的机制。现在的 Java 插件支持使用 Java 网络加载协议 (JNLP) 文件来制定程序配置和启动选项。不需要花费什么功夫,您就可以部署与 Java 程序及 Web 启动程序相同的程序。同时还能利用 JNLP 服务的优势,比如 PersistanceService 和 FileSaveService。
新一代插件的优势:
可靠性更高
改进了 Java 脚本通信
控制各 applet 的 JRE 命令行参数
控制各 applet 的 JRE 内存设置,堆上限更高
支持 JNLP
各 applet 都可选择 JER 版本
改进对 Vista 的支持
有关新一代插件的更多信息,请参阅 发行说明。
Java部署工具包
Java 部署工具包支持快速部署 Java 程序或 Java Web Start 程序。部署工具包脚本文件提供以下功能:
精确检测已安装的 JRE
无缝 JRE 安装
在单独一行代码中完成程序启动(JRE 检测和必要的升级)
在单独的一行代码中完成 Web Start 程序的启动
以下 HTML 代码用于确保已经安装了Java 1.6 并且 Java applets 已经启动:
deployJava.runApplet({codebase:"http://www.example.com/applets/",
archive:"ExampleApplet.jar", code:"Main.class",
width:"320", Height:"400"}, null, "1.6");
更多关于部署工具包的文档请点击 此处。
Nimbus的界面外观
当 Swing 古老的 Metal界面外观 首次发布时,其主要的美感竞争来自 Windows 95 界面。在十年前的图形用户界面条件下,Metal 界面 相对于当时的其他普通界面来说是一种很有吸引力的高雅的选择。
Java SE 5 中更新的 Ocean 主题帮助 Metal 成为目前可行的选择,但是修改 Swing 跨平台界面外观也已是当务之急。
进入 Nimbus 界面外观,可以看到崭新的基于 合成的现代外观。Nimbus 为其应用程序提供了一个完美的界面。而且 Nimbus 完全使用 Java 2D 矢量图型而不是静态位图,所以非常小(只有56KB!),可以提供任何决议。
Figure 3: SwingSet3 in Metal
Figure 4: SwingSet3 in Nimbus
由于兼容性的原因,Metal 还是使用默认的 Swing 界面外观。但是要换成 Nimbus 界面外观所需要的更新程序再简单不过了。只需要一行代码:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
您也可以在命令行指定
-Dswing.defaultlaf=com.sun.java.swing.pl a f.nim bus.Nim使Nimbus变成默认的界面外观。一种永久设定属性的方法是添加代码:
swing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
如果 swing.properties 这个文件不存在,您必须创建一个。
更多关于Nimbus 的信息请参阅 Nimbus 早期访问页面
性能
Sun 的 JRE 在过去几年中以稳健的步伐加速发展,6u10 也不例外。快速启动是主要的性能提升,这能够充分提高多数系统上 Java 冷启动的性能和 Windows 上新的图形流水线。
新的图形流水线将使用 Direct3D
来加速大部分的一般性操作,所以您的计算机可能自带的强大3D图形卡除了玩游戏还有其他用途。半透明,梯度,仿射变换,抗锯齿,矩形填充和副本,以及其他
各种图形操作都将因为 3D 图形卡而加速。而且,之前的 3D 流水线不够强大不能被默认。新的流水线则不同,它坚如磐石,在 6u10 中是默认的。
有关这些特性的更多信息,请参阅 Chet Haase 的博客。
改进补丁
Java SE 6u10 包含下载和安装的补丁。当然,在 6u11 公布之前,这是不可见。但是那个时候,更新下载是通过新的下载引擎。这一引擎会监控您的网络使用和节流,提高带宽使用率,避免妨碍您的网络使用。
新的下载引擎能够自动断点续存,而 6u10 使用的新的补丁
部署可用性
Java Web Start 向来支持各版本的下载,并且 Java applets 和 Web Start 从一开始就支持 Pack200 compression 的使用。
但是,这些性能都要求服务器端的合作,因此本质上不具有可用性。即使提供了所需的 servlets,开发人员也只需要安装它们,但是很不幸,它们并不是多数 Web 主机的选择,这些特性也没有得到应有的广泛应用。
从 6u10 开始,不需要任何专门的服务器支持,版本和 pack2000 支持都能实现。您还需要使这些性能在 JNLP 或者 applet 标记中可用,不过这很简单,只需要添加代码:
或者
完整文档请访问 此处。
期待更多更新!
与 Java 更新的发布一样,SE 6 Update 10 Beta 也提供了一连串的 bug
修复、性能改进和可用性增强,这不是一篇文章就是介绍完的。Java SE 6u10 是我们所接手过的最大的更新发布(没有公共 API
变化)。但是,没有公共 API 变化并不意味着没有值得激动的地方。
如果需要下载 6u10 JDK,请访问 Nimbus 早期访问页面。