GNU Classpath

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类库实现。

其他的一些用途：

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

历史 
GNU Classpath的开发始于1998年。在历史上，它曾多次与其他有类似目的的项目（如Kaffe、libgcj）合并。过去，GNU Classpath使用Japhar虚拟机，但由于用于储存Japhar项目所在网站数据的两张磁盘丢失，该项目现在事实上已停止更新（最后版本为v0.05，于1998年6月22日发布），且GNU Classpath也已不兼容该虚拟机。

在实现了大部分的Java 1.4官方API之后，项目的工作变得更多的是为了解决bug，而不是为了覆盖大多数Java API。2006年10月24日，最后一个缺失的Java1.4类 HTMLWriter的实现被提交。

VM类 
GNU Classpath包含来自官方Java API命名空间的类。必要时，某些调用由“VM”类来完成。这种VM类的名称与本地类的名称相匹配，但在名称前加'VM前缀。如VMObject、VMString等等。VM类与其他代码分开存储，包含私有类和final。这些类的方法包含关键字native，表示需配合的本地库。这类库由Java虚拟机的作者提供，因此GNU Classpath几乎可以连接到任何Java虚拟机。

对Java1.5新特性的支持 
在0.95版本之前，每个GNU Classpath发行版都由两个独立的压缩包组成；其中一个是稳定分支；另一个是开发分支，包含开发中的新功能，并支持Java 1.5中的新增内容，如泛型、枚举和注译。

从0.95开始，Java1.5的新功能合并到了稳定分支中。

另见 
Apache Harmony
GCJ
IKVM.NET
JamVM
JamaicaVM
Jaos
JikesRVM
Kaffe
IcedTea
自由Java实现
Java库

参考链接

外部链接
 官方网址
 .
 : test runs and binary compatibility tests
 .
 .

Java函式庫
GNU计划软件
Java平台