GNU Classpath是Java标准库的一个自由软件实现。它实现了J2SE 1.4和5.0规定的大部分类。因此,Classpath可以用来运行基于Java的应用程序。GNU Classpath是GNU项目的一部分。由于许可证不兼容,它最初是与libgcj并行开发的,但后来这两个项目合并了。

GNU Classpath
截图
GNU Classpath Swing的演示
GNU Classpath Swing的演示
開發者GNU Project
当前版本0.99[1](2012年3月16日,​14年前​(2012-03-16
源代码库 編輯維基數據鏈接
编程语言C语言Java
操作系统跨平台的
类型
许可协议LGPL
网站www.classpath.org

GNU Classpath 被自由软件基金会视为高优先级项目。当Classpath项目开始时,Sun Microsystems公司的官方Java实现的许可证不允许对其Java实现进行任何改动。自Classpath项目开始后,OpenJDK开始在GPL下发布,并成为Java平台的官方开源参考实现

许可证

编辑

GNU Classpath采用GNU宽通用公共许可证v2(即LGPL v2协议)。

用处

编辑

GNU Classpath被许多自由的Java实现(如KaffeSableVMJamVMJikes RVMVMKit)所使用,因为任何一个功能完备的JVM都必须提供一个标准的Java类库实现。

其他的一些用途[2]

  • GCJ,它能够将Java代码编译成独立的可执行文件。
  • GCJAppletViewer,用于在本地的浏览器不支持时从命令行使用Java Applet
  • IKVM.NET,它将Java与.NET框架整合在一起。
  • JNode,一个只使用Java汇编语言编写的操作系统。
  • 用于集群分布式计算的虚拟机。
  • IcedTea英语IcedTea使用GNU Classpath在OpenJDK中的Blobs被上游被取代之前作为的替代品。

历史

编辑

GNU Classpath的开发始于1998年。在历史上,它曾多次与其他有类似目的的项目(如Kaffelibgcj)合并。过去,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的新功能合并到了稳定分支中。

另见

编辑

参考链接

编辑
  1. ^ Hughes, Andrew John. GNU Classpath 0.99 Released! (World Wide Web log). Fuseyism. 2012-03-16 [2012-03-20]. (原始内容存档于2012-12-14). 
  2. ^ GNU Classpath - GNU Project - Free Software Foundation (FSF). www.gnu.org. [2020-08-20]. (原始内容存档于2020-03-14). 
  3. ^ Hungry News. www.hungry.com. [2020-08-15]. (原始内容存档于2020-08-15). 
  4. ^ Japhar - The Hungry Java Runtime. www.hungry.com. [2020-08-15]. (原始内容存档于2020-08-15). 
  5. ^ GNU Classpath Success Stories - GNU Project - Free Software Foundation (FSF). www.gnu.org. [2020-08-15]. (原始内容存档于2020-09-15). 
  6. ^ 6.0 6.1 classpath.git - classpath. git.savannah.gnu.org. [2020-08-18]. (原始内容存档于2019-09-26). 
  7. ^ 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) .
  8. ^ 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) .

外部链接

编辑

📚 Artikel Terkait di Wikipedia

GPL链接例外

Classpath链接例外發佈了Java SE和Java EE项目的类库的大部分源代码,并使用与其企业服务器GlassFish和NetBeans Java IDE相同的许可证相同的许可证。 GNU宽通用公共许可证第 3 版同样被构建为 GPL 的一个例外。 GNU Classpath项目提供了使用这种GPL

自由的Java实现

GNU Classpath是Java的主要自由类库。大多数自由的运行时都使用GNU Classpath作为其类库。 2005年5月,Apache Harmony宣布成立,然而,该项目选择了Apache许可证,而Apache许可证在当时与所有现有的自由Java实现不兼容。 2005年5月的另一个事件是OpenOffice

Java平臺

Java平台即由Java程式語言所撰寫的軟體賴以執行的平台,是Java軟體和電腦系統的中介,最初被設計用在 Applet 等桌面端程式,不過後來逐漸轉移到伺服端的運用。 Java SE Java EE Java ME Java EMBEDDED Java Card Java TV Java 執行環境,即 Java

Java版本歷史

還有其他專有Java實作可用,例如Azul的Zing。Azul在Zulu名稱下提供經過認證的開源OpenJDK版本。 在OpenJDK發布之前,Sun的實作仍是專有的,而GNU Classpath專案則是為了提供Java平台的免費開源實作而創建的。自JDK

Scala

HelloWorld.scala 若要运行: > scala -classpath . HelloWorld 这与编译和运行Java的“Hello World”程序是不是很像呢?事实上,Scala的编译和执行模型与Java是等效的,因而它也兼容于Java的构建工具,比如Ant.

Apache Derby

Java程式,因此只需要操作系统支援Java虛擬機,Derby便可執行。 Derby是特別地為Java環境進行優化,Derby本身不僅是一個純Java程式,而且Derby在執行用戶的SQL程式時,能夠把SQL編譯成Java bytecode並以系統的Java虛擬機執行。由於SQL程式轉成的Java

GCJ

GCJ可将Java 源代码编译为Java虚拟机字节码或适用于不同架构的机器码。它还可以将包含字节码的类文件和整个jar文件编译为机器代码。 GCJ的运行时库来源于GNU Classpath项目,但libgcj库之间有一些区别。GCJ4.3使用了Eclipse Java编译器作为编译前端。 在2007年,GNU做了许多工作来在GNU

清单文件

"java.util" Implementation-Version: "build57" Implementation-Vendor: "Sun Microsystems, Inc." 指定从属文件: MANIFEST.MF文件可以用来指定应用程序运行所必须加载的所有类文件。 Classpath (Java)