Java 7u4开始支持OSX
fmms 13年前
<p> 前不久更新的 <a href="/misc/goto?guid=4958339529488416182">Java 7u4</a>为运行时带来了若干小改变,其中包括首次为 Mac OSX 发布了 JDK 与 JavaFX SDK。</p> <p> 在此次发布前,OSX 上的 Java 都是通过 Apple 发布的,其最近几年在将 Java 作为运行时平台这个问题上有些倒退。随着 OpenJDK 的发布(而不是各个厂商在平台上提供自己的变体与定制化),其目标在于让所有人将 OpenJDK 作为参考实现。这么做的一个好处在于通过向上游提供支持,能够同时为所有平台提供安全修复,而非一个平台一个平台地修复(Apple 在及时发布其 Java 运行时更新上表现得非常差劲;最近爆发的 Flashback 特洛伊木马与病毒就是通过 Apple 最初实现中的一个 Java 安全漏洞造成的,而 OpenJDK 则早就将这个问题修复了)。值得注意的是,此次发布<a href="/misc/goto?guid=4958339530286140000">仅提供了 64 位版本,运行在 Lion 及之后的系统上</a>。</p> <p> 虽然这次仅仅是个小版本发布,但依然提供了大量的小改变,这些在发布声明中都有<a href="/misc/goto?guid=4958339531079091958">详细介绍</a>,值得我们关注。</p> <p> 首先,下一代垃圾收集算法(<a href="/misc/goto?guid=4958339531881075257">即 G1</a>)在该版本的 VM 中得到了完全的支持。虽然在<a href="/misc/goto?guid=4958339532700199314">之前的发布</a>中它已经以商业支持变体的形式发布了,并且可以通过-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC 开启,但这是 G1 首次无需通过实验开关就已在 OpenJDK 开启。</p> <p> 虽然不是实时垃圾收集器,但 G1 垃圾收集器却提供了更快的分配/回收吞吐,这极大地限制了完全 GC 暂停的次数,而之前的垃圾收集器中会经常出现完全的 GC 暂停现象。<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-5419&yr=2008">JavaOne 2008</a>上有对 G1 的介绍,该介绍基于 ACM 论文<a href="/misc/goto?guid=4958339534300908675">A generational mostly-concurrent garbage collector</a>。要想在 Java7u4 中开启 G1 垃圾收集器,依然使用 +XX:+UseG1GC,你可以在 <a href="/misc/goto?guid=4958339535108517378">VM 命令行选项页面</a>中了解其详情,若想了解更多信息,请参考 <a href="/misc/goto?guid=4958339535905975281">G1垃圾收集器</a>说明页面。</p> <p> 其次,Java 7u4 是首个通过 <a href="/misc/goto?guid=4958185795846838213">java.com</a> 发布的 Java 版本。虽然早在 Java 2 时期,该站点就已经开始发布其他版本的 Java 了,但 7u4 发布则是默认情况下该 Portal 首次发布的 Java 7 版本(对于那些依然在使用 Java 6 的用户来说,上面还有一个更新版的 Java 6u32)。</p> <p> 第三,一些 JRockit VM 技术(随着 2008 年<a href="/misc/goto?guid=4958339537450572331">对 BEA 的收购</a>而被接管过来)开始逐步融合进 OpenJDK 系统中。这包括在崩溃后生成缓存的文本转储能力、增强的 JMX 代理以及一个名为 jcmd 的诊断命令框架。<a href="/misc/goto?guid=4958339538272245443">JEP 137</a>中已经涵盖了这些内容,并且首次出现在 Java7u4 中。未来将会出现基于该框架而集成的大量支持与诊断工具。</p> <p> 随着 Java.com 首次开始发布 Java7u4,Java 终端用户将会逐步迁移到 Java 7 上并在默认情况下安装 Java 7。甚至现在已经有人在讨论未来将会自动将 Java 6 更新到 Java 7,但目前尚没有这方面的计划。随着 Oracle 的 Java 7 可以用在所有平台之上,以及围绕着 Java 开发的持续投入,看起来 Oracle 已经重回这个生态圈中了。</p> <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958339539086841355">Java 7u4 Brings Support for OSX</a><br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958339539886065497" target="_blank">InfoQ</a></p>