BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Java SE 6 Update 10发布,有何新特性呢?

| 作者 Dio Synodinos 关注 3 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2008年11月3日. 估计阅读时间: 10 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Java SE 6 Update 10(6u10)在Beta版发布一年、下载量超过100万之后终于发布了,它被称为“Consumer JRE”。该版本主要关注于Java Plug-In,Sun借助此版本兑现了对增强的富客户端用户体验的承诺,并为即将到来的JavaFX Desktop 1.0做好了准备。

在Java 6u10中,Java Plug-In采用了完全重新设计的架构。它运行一或多个Java虚拟机实例,这些实例可以连接到浏览器以与周围的Web页面进行完全的交互,而不像以前在运行浏览器的那个操作系统进程中执行applets。这种架构上的变化具有很多优点,同时引入了几个新特性

  • 增强的可靠性。运行applet的JVM在操作系统层次上与浏览器隔离开来。如果在运行applet的过程中出现了问题,或者是某个applet无法关闭,新的JavaPlug-In就会检测到问题并优雅地处理错误情况;而Web浏览器并不会受到影响。
  • 内置的JNLP支持。新的plug-in可以直接从JNLP文件中加载applets,这统一了浏览器内和浏览器外(通过Java Web Start)Java内容的部署。开发者现在可以重用JNLP扩展以获得高级功能,如JavaFX运行时库通过OpenGL实现的3D图形及applets中的planetary-scale terrain可视化。Applets现在可以访问JNLP APIs以进行持久化数据存储、本地文件系统访问、并完成其它有用的功能(通过沙箱代码)。
  • 基于单个applet的命令行参数。JVM命令行参数可以指定给单个applet,这就提供了更加精细的控制,如堆大小及Java 2D硬件加速特性。从JNLP中加载的applets将命令行参数与(或)系统属性合并到了JNLP文件中。旧式的applets可以在Web页面的HTML中嵌入这些参数。
  • 支持多个JRE版本。每个单独的applet实例都可以运行在不同的JRE上。该特性是面向企业用户的,他们更想让他们的applets运行在某个特定版本的JRE上,或者是特定的JRE家族上。新的plug-in既可以选择特定版本的JRE,也可以选择特定的JRE家族。
  • 增强的Java/JavaScript通信。Web浏览器中的JavaScript引擎与Java编程语言之间的桥梁已 被完全改写了。新的实现向后兼容,并且对Java与JavaScript之间相互调用的可靠性、性能和跨浏览器问题进行了重大改进。过去只能用在Mozilla中的“LiveConnect”功能,如调用静态的Java方法、实例化新的Java对象以及从JavaScript中引用第三方包,现在已被所有的浏览器支持了。
  • 改善的用户体验。新的Java Plug-In在后台启动applets,这样Web浏览器就会一直保持响应。当applets出现在Web页面上时,它们就真的可以运行了。
  • 改进的applet生命周期管理。对applet生命周期方法init、start、stop及destroy的调用更加确定了,同时跨浏览器的行为也得到了改进。Applet的类加载器缓存和以前的applet生命周期(保留其是为了向后兼容)都得到了完全支持,并且其行为也都得到了改进。
  • 更好的大容量堆的支持。此前,通过Java控制面板指定的applets最大堆空间很有限。新的Java Plug-In中修复了这种限制;applets现在可以使用与命令行应用一样大的堆空间。
  • 对Windows Vista的支持更好。运行在Windows Vista中IE保护模式下的签名applets现在与常规的用户应用有着同样的权限,这减少了向Windows Vista移植的代价。

Java Plug-In可用在Internet Explorer 6 & 7中,同时也可用在Windows XP、Windows Vista、Solaris及Linux上的Firefox 3中。现在Mac用户还无法使用它,Kirk Pepperdine认为还需要再过一段时间

从过去的经历来看,Mac用户还需要再等上一段时间才能使用上Java Plug-In。

Jim Weaver设法在Google Chrome Beta中运行了JavaFX applets。看起来Chrome需要Java 6u10:

根据Google所述,Chrome浏览器必须使用Java SE 6 Update 10才能在其中运行Java。 正如我之前提到的,Java SE 6 Update 10的一个目标就是解决JRE和Java/JavaFX的部署问题。Google Chrome是一个很棒的、跨平台的浏览器,由于它需要该版本的Java以使得富客户端的Java/JavaFX程序更加灵活,因此这将提高JavaFX applets和应用的使用率。

之前版本的JRE已经达到了14.5MB,因此其发布包常被Java社区所诟病。借助于6u10,Sun对部署进行了增强。Java Kernel在线安装器可以使用户首次运行applets和Java Web Start应用时更快,而无需等待下载整个Java平台,因为默认的Kernel才4-5MB。这种安装方式满足了大多数Java applets和应用的需要,同时也符合其他库的需要(在运行时可能会需要下载一些库以完成Java Kernel的安装)。此外,Java的自动更新也得到了改进,这是通过即需即补(patch-in-place)的机制完成的,该机制使得用户可以更新 Java平台中的特定组件而不是每次都下载并安装一个全新的JRE。

Java Deployment Toolkit还提供了基于Java的Web applet/应用部署工具,该工具有一个简单的JavaScript接口,有助于检测用户的Java环境并确保使用了正确的Java版本

下面的HTML代码用来确保Java 1.6已被安装,然后会加载一个Java applet:
<script src="http://java.com/js/deployJava.js"></script>
<script>
  deployJava.runApplet({codebase:"http://www.example.com/applets/",
     archive:"ExampleApplet.jar", code:"Main.class",
     width:"320", Height:"400"}, null, "1.6");
</script>

你可以查看deployJava.js来深入了解deployJava对象。

Java 6u10的一个主要新特性就是Java Quick Starter (JQS),它改善了大多数Java applets和应用的初始启动时间:

Windows XP和Windows 2000默认会启动JQS,在Windows Vista中则不是必需的,因为Vista有自己的预加载机制。一个叫做jqs.exe的进程会在后台运行以便快速启动。在Window重启后会加载jqs.exe。

通过周期性地将一些常用的Java文件预先读取到内存中(不会超过20Mb),实现了启动性能的改进。接下来加载Java时,只需要很少的磁盘I/O,而这会使启动速度明显变快。

继续来谈性能,Java 6u10充分利用了基于Microsoft Direct3D 9 API的硬件加速图形管道来改进Swing应用的渲染,而这是由多种因素决定的,包括半透明度、倾斜度、任意的转换及其它的更多高级2D操作。

Java 6u10还提供了一个新的跨平台感官,叫做Nimbus,它是由2D矢量图绘制的。Nimbus基于Synth, 从1.5版开始Synth就是Java的一部分了,同时它为Java UIs提供了一个漂亮且现代感十足的感官。由于Nimbus完全用Java 2D矢量图而不是静态位图来绘制,因此它的大小只有56KB,而且可以用任何方式进行渲染。有两种方式可以使用Nimbus感官,第一种是调用 UIManager.setLookAndFeel,第二种是在运行Java应用时传入-Dswing.defaultlaf命令行选项。

请查看InfoQ的Java社区以了解更多关于Java平台的信息。

查看英文原文:Java SE 6 Update 10 is out but what does it deliver?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT