2012-12-12 49 views
0

我一定會生氣,錯過了一些顯而易見的東西,但我根本無法理解這一點,所以任何幫助都會得到很大的讚賞。java二進制不帶有openjdk-6-jdk?

我在新的Ubuntu 12.10機器上安裝了Java 6。我這樣做:

sudo aptitude install openjdk-6-jdk 

它應該安裝一切。但由於某些原因,它與幾乎沒有JRE的:

[email protected]:/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

只是想着:你有沒有試過下載oracle java 6 jdk並安裝它? – acostache

+0

嘗試以下命令: 其中javac –

+0

查看'/ usr/lib/jvm/java-6 -openjdk-amd64/bin' –

回答

2

您可以使用dpkg的查詢,找出哪些文件包含在一個包:

dpkg-query -L openjdk-6-jdk

...這將顯示的位置java可執行文件爲/ usr/lib/jvm/java-6-openjdk- $ ARCH/bin($ ARCH是您的體系結構)。

+0

謝謝,這是一個我不知道的通常有用的命令。不幸的是,這只是告訴我,java二進制文件不在打包openjdk-6-jdk或openjdk-6-jre :)可能不得不求助於從oracle站點下載二進制文件... –

+1

嗯,你對。我運行了'dpkg-query -S/usr/lib/jvm/openjdk-6-i386/bin/java',它報告擁有的軟件包是'openjdk-6-jre-headless'。這是在Ubuntu 12.04上。 – davmac

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) 

如果由於某種原因,JRE,無頭的OpenJDK-6沒有安裝,然後再進行安裝。

在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