OpenJDK 和 GCJ 都可以在 Debian 上安装,现在我想知道发生了什么。这些不提供相同的功能吗?
答案1
Debian 的立场是,除了某些被认为是必需的关键系统组件之外,没有首选软件。如果两个程序提供相似的功能,并且它们都是适用于 Debian²,并且有一个 Debian 开发人员愿意维护每个软件包,那么这两个程序最终都会出现在 Debian 中。这个想法是由用户选择使用哪个程序。
在给定的系统上,最多可以有一个 Java 实现/usr/bin/java
。这是通过以下方式决定的替代机制:每个 Java 实现都有一个优先级(由所涉及的 Debian 软件包的维护者之间的共同协议决定),并且安装在特定系统上的实现具有最高优先级/usr/bin/java
。系统管理员可以通过手动更改/etc/alternatives/java
符号链接来覆盖此设置。如果安装了多个 JVM,用户可以根据具体情况选择运行/usr/lib/jvm/java-6-openjdk/jre/bin/java
、/usr/lib/jvm/java-6-sun/jre/bin/java
等。
1
或者至少强烈建议。
²
最广为人知的要求是该程序必须是自由软件,但有一些例外 ( non-free
);另一个是它不能有太多问题。
答案2
大多数情况下,两者都很好:OpenJDK 默认安装在支持的平台上,否则将使用 GCJ。