本周有报道称 RedHat 发起的 IcedTea 项目(连同 OpenJDK 一起),已经通过了 Java 兼容性测试工具(TCK)的测试,达到了 100% 的兼容,正式成为首个通过 TCK 兼容性测试的完全开源(GPL 协议)的 Java 实现。
本周 IcedTea 项目到达了一个重要的里程碑——包含在 Fedora 9 (x86 及 x86_64)中的最新的 OpenJDK 通过了 TCK 严格的测试。这意味着它提供了所有必需的 Java APIs 并且在行为上与其他 Java SE 6 实现类似——与 Java 平台可移植的目标一致。
大家都认为通过 TCK 测试是一个了不起的成就:
Java TCK 是一个复杂的工具和文档套件,用来验证 Java 实现是否遵从 Java 规范。它包含 80,000 多个测试以及 100 多万行代码。
就像早前在InfoQ 上讨论的那样, IcedTea 项目通过 OpenJDK 成为一个 100% 的基于 GPL 协议的 Java 实现,并且使用 GNU Classpath 项目的相应部分替换掉了余下的 5% 的私有组件代码。
IcedTea 项目由 GNU Classpath 小组创建,同时由于需要使用开源实现替换掉所有的私有代码,因此一些 RedHat 开发者也加入其中。GNU Classpath 将 OpenJDK 中的私有代码替换为 GPL 协议的代码,这使得使用 OpenJDK 构建的 IcedTea 更加适合如 RedHat 的 Fedora Linux 这样的平台。由于 IcedTea 的一部分贡献,Fedora 9 包含了功能完全的 OpenJDK 包。
其他的开源 Java 实现,如 Apache Harmony 尚没有通过 TCK 测试,然而并不是所有的困难都与技术相关。早在 2007 年 4 月,Apache 软件基金会就向Sun 公司发送了一封公开的邮件,希望解决使用TCK 测试Harmony 平台的关键的许可协议问题;许可Harmony 小组以开源的方式合法运行TCK。Sun回复了该公开邮件,他们说还没有决定向Harmony 小组授权,因此他们仍无法运行TCK。
IcedTea 项目没有像 Apache Harmony 那样遭受到相同的协议问题,因为 Sun 已经提供了TCK 许可协议的一个特别版本,面向派生自OpenJDK 的任何Java 实现;这是Apache Harmony 所无法获得的东西。
InfoQ 将继续报道开源 Java 实现相关的新闻。




