自由的Java實現

維基百科,自由的百科全書

自由的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編譯。

參考資料[編輯]

  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).