GNU Classpath
開發者 | GNU Project |
---|---|
當前版本 | 0.99[1](2012年3月16日 ) |
源代碼庫 | |
編程語言 | C語言 和 Java |
操作系統 | 跨平台的 |
類型 | 庫 |
許可協議 | LGPL |
網站 | www |
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]:
- GCJ,它能夠將Java代碼編譯成獨立的可執行文件。
- GCJAppletViewer,用於在本地的瀏覽器不支持時從命令行使用Java Applet。
- IKVM.NET,它將Java與.NET框架整合在一起。
- JNode,一個只使用Java和匯編語言編寫的操作系統。
- 用於集群分布式計算的虛擬機。
- IcedTea使用GNU Classpath在OpenJDK中的Blobs被上游被取代之前作為的替代品。
歷史
[編輯]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的新功能合併到了穩定分支中。
另見
[編輯]參考鏈接
[編輯]- ^ Hughes, Andrew John. GNU Classpath 0.99 Released! (World Wide Web log). Fuseyism. 2012-03-16 [2012-03-20]. (原始內容存檔於2012-12-14).
- ^ GNU Classpath - GNU Project - Free Software Foundation (FSF). www.gnu.org. [2020-08-20]. (原始內容存檔於2020-03-14).
- ^ Hungry News. www.hungry.com. [2020-08-15]. (原始內容存檔於2020-08-15).
- ^ Japhar - The Hungry Java Runtime. www.hungry.com. [2020-08-15]. (原始內容存檔於2020-08-15).
- ^ GNU Classpath Success Stories - GNU Project - Free Software Foundation (FSF). www.gnu.org. [2020-08-15]. (原始內容存檔於2020-09-15).
- ^ 6.0 6.1 classpath.git - classpath. git.savannah.gnu.org. [2020-08-18]. (原始內容存檔於2019-09-26).
- ^ GNU Classpath "95% and counting" 0.19 released, The GNU Project (announcement), Software, The Free Software Foundation, 2005-11-02 [31 May 2011], (原始內容存檔於2020-01-22).
- ^ The release of GNU Classpath 0.98 "Better Late Than Never, The GNU Project (announcement), Software, The Free Software Foundation, 2009-02-05 [2020-08-27], (原始內容存檔於2020-03-14).
外部連結
[編輯]- 官方網址(頁面存檔備份,存於網際網路檔案館)
- Automatically generated documentation, including source code, Classpath, [2020-08-27], (原始內容存檔於2020-05-05).
- Builder, Classpath, [2020-08-27], (原始內容存檔於2013-05-02): test runs and binary compatibility tests
- A GNU Classpath developer, The state of free java project collaborations, GNU/Linux weekly news (article), May 2006 [2020-08-27], (原始內容存檔於2020-09-18).
- Permeable Development, SMI (World Wide Web log), CH: ETHZ, 2006-01-25 [2020-08-27], (原始內容存檔於2006-07-20).