GNU Classpath 与 OpenJDK 二者的结合

阅读数:382 2007 年 6 月 23 日

话题:Java开源DevOps语言 & 开发架构

第一个 GNU Classpath 与 Sun Java 的结合体已经出现。二者的结合体将 GNU Classpath 与 Sun 公司最近遵循 GPL 协议发布的 Java 代码相结合,来提升现有项目的性能,或是进一步实现一个完全免费的 JDK。第一个 IKVM 项目已经发布了 Snapshot 版本,这就允许 OpenJDK 类库中的一部分能在 Mono 和.NET 中运行。之后 CACAO 项目的开发团队发布了 一个新的版本,允许 Sun 的 phoneME 可以被用作核心类库。最终,红帽公司启动了 IcedTea 项目,使得 OpenJDK 仅使用自由软件就可以编译, 并且为 OpenJDK 中剩余的二进制模块,提供来自 GNU Classpath 的存根(stubs)和替代(replacement)。

IKVM.NET 为 Mono 和微软.NET Framework 提供了 Java 代码编译和运行的实现。以前的项目使用GNU Classpath来执行 Java 类函数,而目前则开始把OpenJDK中的类库整合到项目中,这将是个漫长的过程。项目的第一个 Snapshot 快照已在五月 31 日发布,随后另一个版本在六月 13 日发布

CACAO是使用 Just-In-Time 即时编译技术的 Java 虚拟机,运行平台支持 i386、x86_64、Alpha、PowerPC、ARM、MIPS 以及 MIPS32 等多种硬件架构。CACAO 使用

GNU Classpath 作为其默认的 Java 内核类库。CACAO 的 0.98 版本口号是“释放所有的 JIT 性能!”,这个版本加入了对使用 Sun 的phoneMECLDC 1.1类作为 Java 核心类库的支持。

Sun 公司已经在 GPL 协议之下开放了几乎所有 JDK 的代码,要注意这里的关键词“几乎”。仍然有众多的“二进制模块”,代表部分阻碍的部件。红帽已经启动了新的项目IcedTea,目标是:(1)使 OpenJDK 仅用免费软件就可进行编译,以及(2)为二进制插件提供免费的存根(stubs)和替代(replacement)。替代代码已经从 GNU Classpath 中提取出来,并且越多越好,但是 IcedTea 项目同时也为依赖创建了存根,这并不符合 GNU Classpath。IcedTea 项目“并不打算成为一个永久性项目 —— 只是一个暂时的权宜之计”,直到这些功能实现被直接加入到 OpenJDK 项目中为止。

这无疑是令人鼓舞的:代码共享在向两个方向发展。自由软件项目不仅是要与其他新的自由软件代码结合,也可以帮助 OpenJDK 的发展。很明显,这仅仅是个开始。

查看英文原文:Hybrids Combine GNU Classpath and OpenJDK