Java 7u4 开始支持 OSX

阅读数:1603 2012 年 5 月 10 日

话题:JavaOracleJVM语言 & 开发

前不久更新的Java 7u4为运行时带来了若干小改变,其中包括首次为 Mac OSX 发布了 JDK 与 JavaFX SDK。

在此次发布前,OSX 上的 Java 都是通过 Apple 发布的,其最近几年在将 Java 作为运行时平台这个问题上有些倒退。随着 OpenJDK 的发布(而不是各个厂商在平台上提供自己的变体与定制化),其目标在于让所有人将 OpenJDK 作为参考实现。这么做的一个好处在于通过向上游提供支持,能够同时为所有平台提供安全修复,而非一个平台一个平台地修复(Apple 在及时发布其 Java 运行时更新上表现得非常差劲;最近爆发的 Flashback 特洛伊木马与病毒就是通过 Apple 最初实现中的一个 Java 安全漏洞造成的,而 OpenJDK 则早就将这个问题修复了)。值得注意的是,此次发布仅提供了 64 位版本,运行在 Lion 及之后的系统上

虽然这次仅仅是个小版本发布,但依然提供了大量的小改变,这些在发布声明中都有详细介绍,值得我们关注。

首先,下一代垃圾收集算法(即 G1)在该版本的 VM 中得到了完全的支持。虽然在之前的发布中它已经以商业支持变体的形式发布了,并且可以通过 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC 开启,但这是 G1 首次无需通过实验开关就已在 OpenJDK 开启。

虽然不是实时垃圾收集器,但 G1 垃圾收集器却提供了更快的分配 / 回收吞吐,这极大地限制了完全 GC 暂停的次数,而之前的垃圾收集器中会经常出现完全的 GC 暂停现象。JavaOne 2008上有对 G1 的介绍,该介绍基于 ACM 论文A generational mostly-concurrent garbage collector。要想在 Java7u4 中开启 G1 垃圾收集器,依然使用 +XX:+UseG1GC,你可以在VM 命令行选项页面中了解其详情,若想了解更多信息,请参考G1 垃圾收集器说明页面。

其次,Java 7u4 是首个通过java.com发布的 Java 版本。虽然早在 Java 2 时期,该站点就已经开始发布其他版本的 Java 了,但 7u4 发布则是默认情况下该 Portal 首次发布的 Java 7 版本(对于那些依然在使用 Java 6 的用户来说,上面还有一个更新版的 Java 6u32)。

第三,一些 JRockit VM 技术(随着 2008 年对 BEA 的收购而被接管过来)开始逐步融合进 OpenJDK 系统中。这包括在崩溃后生成缓存的文本转储能力、增强的 JMX 代理以及一个名为 jcmd 的诊断命令框架。JEP 137中已经涵盖了这些内容,并且首次出现在 Java7u4 中。未来将会出现基于该框架而集成的大量支持与诊断工具。

随着 Java.com 首次开始发布 Java7u4,Java 终端用户将会逐步迁移到 Java 7 上并在默认情况下安装 Java 7。甚至现在已经有人在讨论未来将会自动将 Java 6 更新到 Java 7,但目前尚没有这方面的计划。随着 Oracle 的 Java 7 可以用在所有平台之上,以及围绕着 Java 开发的持续投入,看起来 Oracle 已经重回这个生态圈中了。

查看英文原文:Java 7u4 Brings Support for OSX