Java 7u4开始支持OSX
前不久更新的 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
译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。