0

我一定要发疯了,并且遗漏了一些明显的东西,但是我根本无法理解这一点,因此我们将不胜感激。

我正在一台新的 Ubuntu 12.10 机器上安装 java 6。我愿意:

sudo aptitude install openjdk-6-jdk

据说可以安装所有东西。但由于某种原因,它几乎没有 jre:

richard@holly:/usr/lib/jvm/java-6-openjdk-amd64/jre/bin$ ls -atl
total 48
drwxr-xr-x 2 root root  4096 Dec 12 11:54 .
drwxr-xr-x 5 root root  4096 Dec 12 11:54 ..
-rwxr-xr-x 1 root root 39600 Oct 24 18:54 policytool

我试过安装openjdk-6-jre,但它说它已经安装了。

完全一头雾水。我错过了什么?

干杯,

理查德

4

2 回答 2

2

当您安装 openjdk-6-jre 时,它​​应该还包含其依赖项 openjdk-6-jre-headless,它是包含 java 二进制文件的包。

/usr/lib/jvm/java-6-openjdk-amd64/jre/bin 目录的内容直接由包填充。如果缺少文件,则系统存在严重问题。

dpkg -l您应该使用以下命令确认两个软件包都已安装:

dpkg -l openjdk-6-jre openjdk-6-jre-headless
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                     Version                  Description
+++-========================-========================-================================================================
ii  openjdk-6-jre            6b24-1.11.5-0ubuntu1~12. OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless   6b24-1.11.5-0ubuntu1~12. OpenJDK Java runtime, using Hotspot JIT (headless)

如果由于某种原因未安装 openjdk-6-jre-headless,则安装它。

/usr/bin 中应该有由 openjdk-6-jre 和 openjdk-6-jre-headless postinst(安装后)脚本创建的 java 和其他可执行文件的链接。如果您想检查 postinst 脚本,它们和 /var/lib/dpkg/info 中的其他包脚本作为 .postinst。

作为一个方便的提示,与此类似的命令将列出指向非链接终止符的符号链接链。

f=/usr/bin/java; while [ -h $f ]; do ls -l $f; f=$(readlink $f); done; ls -l $f
于 2013-01-17T14:02:14.500 回答
2

您可以使用 dpkg-query 找出包中包含哪些文件:

dpkg-query -L openjdk-6-jdk

...这将显示 java 可执行文件的位置为 /usr/lib/jvm/java-6-openjdk-$ARCH/bin ($ARCH 是您的架构)。

于 2012-12-12T13:49:29.133 回答