我如何在Ubuntu Jaunty服务器上安装无头JDK?

我最近设置了一个需要运行JDK的构build服务器(例如,编译Java源代码)。 Ubuntu中的OpenJDK软件包将OpenJDK JRE作为依赖项引入,而依赖性依赖于大量仅与graphics环境相关的软件包。 对于标准的JRE,有一个无头版本的包,但是对于JDK,没有。

这个问题已经在不同的地方讨论过了,我发现和使用的一个解决scheme是这样的:

$ apt-get --no-install-recommends -d install openjdk-6-jdk $ dpkg -i --ignore-depends=openjdk-6-jre /path/to/just-downloaded.deb 

虽然这个工作,它现在离开我的系统一个破碎的依赖树和apt-get拒绝进一步安装,直到我运行apt-get -f

有更好的解决办法吗?

这已经在下面的Ubuntu的bug中讨论过了。

据我所见,你有以下select:

  1. 使用来自Sun的非自由Java JDK。 (你可以使用debian / ubuntu的JavaPackage程序来创build一个非JDK免费的deb包)。
  2. 与Ubuntu开发者合作解决这个问题。
  3. 创build你自己的OpenJDK-headless包。

当然,从长远来看,选项2是最好的,因为它解决了每个人的问题,选项1和选项3只为你解决,然而1和3更快。

难道你只是下载并安装Sun的JDK? 没有编译,不需要X11。 我更喜欢它的包装选项。

 chmod +x ~/jdk-6u14-linux-i586.bin cd /usr sudo mkdir java cd java sudo ~/jdk-6u14-linux-i586.bin export JAVA_HOME=/usr/java/jdk1.6.0_14 export PATH=$JAVA_HOME/bin:$PATH 

我怀疑他只是需要更新他的替代品的链接:

 update-alternatives --set java /usr/lib/jvm/default-java/bin/java 

(或类似的东西)