Apache Harmony

Apache Harmony是Apache軟件基金會主導的開放原始碼專案，是自由Java實作計劃（Free Java implementations）的一部份。基於Java SE 5與6，目標是以開放原始碼方式，實作出Java SDK。该项目已于2011年10月宣布停止开发。

这个项目的目标是营造一个大型的、健康的社区，这个社区由那些对运行时平台感兴趣的人组成。他们的任务是完成：
一个兼容的、独立的Java SE 5 JDK的实现，并根据Apache License v2发布；
一个由社区开发的模块化的运行时（包括Java虚拟机和类库）体系结构。

该项目期望支持尽可能多的不同平台。一个特定的平台是否被支持，主要取决于参与者能在这个平台上定期运行测试、报告编译安装的情况，以及为该平台除虫，等等。

历史 
Apache Harmony项目建立于2005年5月。到2006年10月25日，Apache董事会投票决定Apache Harmony成为顶级项目。10月29日，Apache孵化器管理委员会（Incubator PMC）投票决定Harmony完成孵化，认为它符合孵化器对社区管理和IP监管的要求。

开发者 
Apache Harmony拥有32名贡献者，其中28位处于活跃期。此外，还拥有大量的其他兴趣爱好者和开发人员。

最近发展 
Apache Harmony一直在稳步前进：
Apache Harmony已经发布了5个milestone build
JRE可以运行一些流行的应用如Apache Tomcat, Eclipse, Maven, Derby, Ant
完成了99%的Java 5 API
超过125万行的代码
Harmony类库于2007年底被Google Android采用为其类库
2007年，IBM宣布在其JDK6.0中使用了部分Harmony代码

Android
Dalvik虛擬機, Google Android平台所使用的虛擬機，使用了Harmony部份的子集，作為它核心的類別函式庫。

TCK的纷争 
如果需要成为一个带有Java logo标志的，可以声称自己兼容Sun公司实现的JDK，需要通过JCP（Java Community Process）对其拥有的TCK（Technology Compatibility Kit）的测试。Apache Harmony项目一直在努力争取获得JCP的授权。

但是，由于Sun公司的态度，JCP并没有给Harmony授予TCK许可，而且SUN发布OpenJDK之后，还规定只有衍生自OpenJDK的采用GPL协议的开源实现才能运行OpenJDK的TCK，

但Apache的Harmony是Apache协议的，与OpenJDK的GPLv2协议不兼容，Apache董事会和Harmony项目工作人员坚决反对这种带有条件的授权，认为这种是在开源社区里不可接受的。因此，两者谈判破裂。直到现在，Harmony一直没有获得TCK的授权。有批评称，Sun无视它签署的JCP法律协定，这摧毁了全部的信任。

但该项目参与者依然认为，即使没有TCK，即无法“声称”自己兼容Sun的实现，他们依然可以做出一个好的产品并为业界所接受。

未来展望 
Apache Harmony计划每2个月做一个milestone的build，并计划于今年正式发布一个5.0（即期望与Sun jdk 5.0兼容的）的发布版。

参考文献

外部链接 
 

Java虚拟机
Apache软件基金会