java二进制文件没有附带openjdk-6-jdk?

时间:2012-12-12 13:36:28

标签: java openjdk

我一定是疯了,错过了一些明显的东西,但我根本无法理解这一点,所以任何帮助都会受到极大的赞赏。

我在新的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,但它说已经安装了。

完全莫名其妙。我错过了什么?

干杯,

理查德

2 个答案:

答案 0 :(得分:2)

您可以使用dpkg-query查找包中包含的文件:

dpkg-query -L openjdk-6-jdk

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

答案 1 :(得分: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,请安装它。

在openjdk-6-jre和openjdk-6-jre-headless postinst(安装后)脚本创建的/ usr / bin中应该有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