我一定是疯了,错过了一些明显的东西,但我根本无法理解这一点,所以任何帮助都会受到极大的赞赏。
我在新的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,但它说已经安装了。
完全莫名其妙。我错过了什么?
干杯,
理查德
答案 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