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
來自: InfoQ