java二进制文件不随openjdk-6-jdk提供?

java二进制文件不随openjdk-6-jdk提供?,java,openjdk,Java,Openjdk,我一定是疯了,错过了一些明显的东西,但我一点也不明白这一点,所以任何帮助都将不胜感激 我正在一台新的Ubuntu 12.10机器上安装Java6。我有: 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 De

我一定是疯了,错过了一些明显的东西,但我一点也不明白这一点,所以任何帮助都将不胜感激

我正在一台新的Ubuntu 12.10机器上安装Java6。我有:

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,但它说它已经安装好了

完全困惑。我错过了什么

干杯


Richard

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

dpkg查询-L openjdk-6-jdk


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

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

dpkg查询-L openjdk-6-jdk


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

当您安装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

当您安装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

试想一下:你试过下载OracleJava6JDK并安装它吗?试试下面的命令:哪个javacHave查看
/usr/lib/jvm/java-6-openjdk-amd64/bin
谢谢大家的指点。javac位于:/usr/lib/jvm/java-6-openjdk-amd64/bin/javac中,但java二进制文件不在同一目录中。很可能是从oracle站点下载并安装该软件包,是的。只是想一想:您是否尝试下载oracle java 6 jdk并安装该软件包?请尝试以下命令:在
/usr/lib/jvm/java-6-openjdk-amd64/bin
中查看哪个javacHave。javac位于:/usr/lib/jvm/java-6-openjdk-amd64/bin/javac中,但java二进制文件不在同一目录中。很可能是从oracle站点下载和安装软件包,是的。谢谢,这是一个非常有用的命令,我不知道。不幸的是,这只是告诉我java二进制文件不在openjdk-6-jdk或openjdk-6-jre:)包中,可能需要从oracle站点下载二进制文件……嗯,你说得对。我运行了
dpkg查询-S/usr/lib/jvm/openjdk-6-i386/bin/java
,它报告拥有的包是“openjdk-6-jre-headless”。这是在Ubuntu 12.04上。谢谢,这是一个非常有用的命令,我不知道。不幸的是,这只是告诉我java二进制文件不在openjdk-6-jdk或openjdk-6-jre:)包中,可能需要从oracle站点下载二进制文件……嗯,你说得对。我运行了
dpkg查询-S/usr/lib/jvm/openjdk-6-i386/bin/java
,它报告拥有的包是“openjdk-6-jre-headless”。这是在Ubuntu 12.04上。