GNU Classpath是Java標準庫的一個自由軟件實現。它實現了J2SE 1.4和5.0規定的大部分類。因此,Classpath可以用來執行基於Java的應用程式。GNU Classpath是GNU專案的一部分。由於許可證不相容,它最初是與libgcj並列開發的,但後來這兩個專案合併了。
GNU Classpath 被自由軟件基金會視為高優先級專案。當Classpath專案開始時,Sun Microsystems公司的官方Java實現的許可證不允許對其Java實現進行任何改動。自Classpath專案開始後,OpenJDK開始在GPL下發佈,並成為Java平台的官方開源參考實現。
許可證
GNU Classpath採用GNU寬通用公共許可證v2(即LGPL v2協定)。
用處
GNU Classpath被許多自由的Java實現(如Kaffe、SableVM、JamVM、Jikes RVM和VMKit)所使用,因為任何一個功能完備的JVM都必須提供一個標準的Java類別庫實現。
其他的一些用途[2]:
歷史
GNU Classpath的開發始於1998年。在歷史上,它曾多次與其他有類似目的的專案(如Kaffe、libgcj)合併。過去,GNU Classpath使用Japhar虛擬機器,但由於用於儲存Japhar專案所在網站數據的兩張磁碟遺失[3],該專案現在事實上已停止更新(最後版本為v0.05,於1998年6月22日發佈)[4],且GNU Classpath也已不相容該虛擬機器[5]。
在實現了大部分的Java 1.4官方API之後,專案的工作變得更多的是為了解決bug,而不是為了覆蓋大多數Java API。2006年10月24日,最後一個缺失的Java1.4類 HTMLWriter的實現被提交[6]。
VM類
GNU Classpath包含來自官方Java API命名空間的類。必要時,某些呼叫由「VM」類來完成。這種VM類的名稱與本地類的名稱相匹配,但在名稱前加'VM字首。如VMObject、VMString等等。VM類與其他代碼分開儲存,包含私有類和final。這些類的方法包含關鍵字native,表示需配合的本地庫。這類別館由Java虛擬機器的作者提供,因此GNU Classpath幾乎可以連接到任何Java虛擬機器。[6]
對Java1.5新特性的支援
在0.95版本之前,每個GNU Classpath發行版都由兩個獨立的壓縮檔組成;其中一個是穩定分支;另一個是開發分支,包含開發中的新功能,並支援Java 1.5中的新增內容,如泛型、列舉和註譯。[7]
從0.95開始[8],Java1.5的新功能合併到了穩定分支中。
另見
- Apache Harmony
- GCJ
- IKVM.NET
- JamVM
- JamaicaVM
- Jaos
- JikesRVM
- Kaffe
- IcedTea
- 自由Java實現
- Java庫
參考連結
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.