2012-08-01 97 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