2012-08-01 96 views
0

這是一個關於OpenJDK和被移除的軟件包的一般問題。我正在刪除libatk-wrapper-java。但是,當我使用apt-get刪除它時,它說openjdk-7-jre也將被刪除。我的問題是,即使在openjdk-7-jre被刪除後,我仍然能夠成功地使用java命令,這怎麼可能?OpenJDK和Ubuntu服務器

+0

你可能會在http://askubuntu.com/ – 2012-08-01 18:14:26

回答

2

你可以用它來找出那個了所使用位於Java命令:

which java 

然後,使用ls -l找出如果這是符號鏈接,並且如果是的話,它指向的地方。 (很有可能它會指向/etc/alternatives中的某個東西,至少這就是它在我的系統上所做的)。

繼續使用ls -l來跟蹤鏈接,直到找到正在運行的真實二進制文件。

然後,用它來找出哪些軟件包擁有二進制:

dpkg -S $PATH_TO_JAVA_BINARY 

在我的機器,這個過程是這樣的:

AWS:~$ which java 
/usr/bin/java 
AWS:~$ ls -l /usr/bin/java 
lrwxrwxrwx 1 root root 22 Jul 30 22:47 /usr/bin/java -> /etc/alternatives/java* 
AWS:~$ ls -l /etc/alternatives/java 
lrwxrwxrwx 1 root root 45 Jul 30 22:47 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java* 
AWS:~$ dpkg -S /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 
openjdk-6-jre-headless: /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 

這告訴我,包openjdk-6-jre-headless安裝,這就是擁有在命令提示符下鍵入java時運行的Java二進制文件的內容。 (儘管系統中可能還有一個或多個其他JVM,但這只是告訴我哪一個是默認設備。)

這可能不是解決問題的最快方法,但它可能有助於你理解你的系統設置好一點。

+0

這有助於解決問題,謝謝!現在的問題是,爲什麼它在我移除libatk-wrapper-java時應該被刪除。 – KrispyDonuts 2012-08-01 18:35:00

+0

這個問題的答案將取決於這個程序告訴你什麼。也許你會發現除了已經被移除的Java之外,還有另外一個包提供了Java。或者,也許刪除'openjdk-7-jre'永遠不會完成由於某種原因。 – 2012-08-01 18:36:57

+0

您的編輯幫助回答了我關於openjdk-6-jre-headless仍然存在的問題。謝謝! – KrispyDonuts 2012-08-01 18:38:33

0

你有沒有安裝其他JDK? 我正在使用LINUx,它帶有openjdk-6。這是你的情況嗎? 檢查在/ usr /共享/ DOC/OpenJDK的-6-JRE

+0

得到更多的幫助。我只安裝了一個JDK,但似乎沒有刪除openjdk-6-jre-headless版本。 – KrispyDonuts 2012-08-01 18:47:11