跳转到内容

自由的Java实现

维基百科,自由的百科全书

这是本页的一个历史版本,由Jimlee0824留言 | 贡献2024年5月20日 (一) 12:42 (新條目)编辑。这可能和当前版本存在着巨大的差异。

自由的Java实现是用来实现Oracle Java,并在自由软件许可证下发布的软件。Sun公司在2007年5月将大部分Java的实现代码以开源协议发布,所以Oracle Java基本上是开源实现[1],但是从2019年4月16日起,Oracle Java颁布了新的许可协议[2],这将会对Oracle Java的商业使用造成影响[3]。Java实现包括编译器、运行时、类库等。自由软件的倡导者们将自由的Java虚拟机称为自由Java运行时自由的运行时

一些自由软件运动的倡导者不愿意使用“Java”一词,因为它存在版权问题[4]。因此,即使是“自由Java运动”,他们也避免使用“自由Java运行时”一词。

20世纪90年代中期到2006年

第一个提供大量Java平台功能的自由软件项目是Guavac,它在1995年11月左右开始。[5][6]此后,自由软件运动开发了其他Java编译器,最著名的是GNU Java编译器。其他还包括由Eclipse基金会维护的Eclipse Java编译器(ECJ)和不再积极维护的Jikes。从GCC4.3开始,GCJ(GCC所附带的Java编译器)使用ECJ解析器前端来解析Java,但GCJ于不久后停止开发。[7]

自由的运行时的例子则包括Kaffe、SableVM和gcj。

GNU Classpath是Java的主要自由类库。大多数自由的运行时都使用GNU Classpath作为其类库。

2005年5月,Apache Harmony宣布成立,然而,该项目选择了Apache许可证,而Apache许可证在当时与所有现有的自由Java实现不兼容。

2005年5月的另一个事件是OpenOffice.org宣布OpenOffice 2.0将依赖于某些特定的Java功能,而这些功能是自由软件实现无法提供的。在争议之后,OpenOffice.org采用了一个指导方针,要求它能够与自由的Java实现相兼容。

在2006年11月之前已经与自由软件Java实现合作的著名应用程序包括OpenOffice.org和Vuze,这两个应用程序都可以使用GCJ编译。

2006年11月的公告

2006年11月13日,Sun公司根據GNU General Public License發布了其編譯器javac[8]

截至2007年9月,Sun除了釋出javac外,也將 HotSpot (virtual machine) 和幾乎所有Java Class Library的程式碼作為自由軟體發布。

根據他們承諾於2007年上半年基本完全基於自由和開放原始碼代碼釋出一個完全可構建的JDK[9] Sun 於2007年5月8日釋出了類庫的完整源代碼,除了一些有限的部分,這些部分是由Sun 從第三方獲得許可,這些第三方不希望他們的代碼在自由軟件許可下釋出。[10] Sun已經表示,它的目標是用替代實現來取代其餘專有和封閉源代碼的部分,並使類庫完全免費和開源。由於JDK中有一些受限代碼,Sun將繼續在商業發行版中使用該代碼,直到被完全功能齊全的免費和開源替代方案取代為止。

参考资料

  1. ^ OpenJDK and the IcedTea Project. www.redhat.com. [2019-12-16]. (原始内容存档于2021-03-08) (韩语). 
  2. ^ Oracle Java SE License. www.oracle.com. [2020-12-29]. (原始内容存档于2021-05-07) (美国英语). 
  3. ^ Oracle Java 许可重要更新. www.java.com. [2020-12-29]. (原始内容存档于2021-04-13). 
  4. ^ Java Licensing Logo Guidelines (PDF). [2020-12-29]. (原始内容 (pdf)存档于2020-12-01) (美国英语). 
  5. ^ Announcing: guavac 0.2.5, A free compiler for the Java language. 1996-09-07 [2007-06-24]. (原始内容存档于2009-08-14). 
  6. ^ Changelog of guavac, showing the first release happening in January 1996. [2007-06-24]. (原始内容存档于2007-09-28). Wed Nov 22 05:43:07 1995 […] CompilerMain.C, Compiler. C, Compiler.h, lexer.l, parser.y: Initial revision 
  7. ^ GCC 4.3 Release Series -- Changes, New Features, and Fixes. [2007-10-08]. (原始内容存档于2021-04-27). 
  8. ^ Sun picks GPL license for Java code
  9. ^ OpenJDK FAQ 互联网档案馆存檔,存档日期2007年4月2日,.
  10. ^ Open JDK is here!. Sun Microsystems. 2007-05-08 [2007-05-09].