Oracle和Google关于Java侵权的官司持续5年多了, 闹得沸沸扬扬, 我就是想搞清楚其背后的来龙去脉以及利益争夺.
Sun推出Java后, Java所向披靡, 大行其道.
虽然Java语言是公用的, 但是Java虚拟机, JDK一直是Sun的私有产品. 要商用, 就得向Sun购买授权.
IBM通过向企业提供java的服务, 赚了很多钱, SUN也赚了不少.
2005年, Apache Harmony项目建立, 目标是建立开源的JDK.仅仅API和Sun的JDK相同, 实现完全不同.
做这个事, IBM是最有动力的, 所以IBM贡献了很多代码.
Harmony开发了JDK之后, 必须要通过JCP的TCK测试, 才能对外宣称自己完全符合java规范, 于是从2007年开始申请TCK.
但是Sun此时有自己的考虑.:
首先, Apache的开源协议是非常宽松的, 它允许任何人使用该代码, 甚至是商业用途. 如果把TCK给了Harmony, 那么以后jdk就完全免费了, 谁还来买Sun的授权呢?
第二, JDK分为J2SE, J2EE, J2ME, 其时J2SE基本是废了, Sun也赚不到什么钱, 但J2EE可是一块肥肉, SUN在上面赚到很多钱, 此外, J2ME在当年看起来也前途无量, 2007年的时候, 正是移动起飞的时机.
所以Sun采取了两个措施来对付Harmony:
第一, 仅仅授予Harmony在J2SE的TCK.
第二, 开源自己的Java源码成为OpenJDK, 但是是已GPL协议开放, 也就是说,如果商业机构要使用免费的OpenJDK, 那么商业机构将必须遵守GPL协议而开放自己的商业软件的代码.所以, 基于GPL的开源, 不会断掉Sun的财路.
第三, 不知是迫于压力还是良心发现, Sun对J2SE和J2EE采用了LG