如何完全卸载Java?


Answers:


310
  1. 删除所有与Java相关的软件包(Sun,Oracle,OpenJDK,IcedTea插件,GIJ):

    dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y remove
    sudo apt-get -y autoremove
    
  2. 清除配置文件(注意。此命令也删除了libsgutils2-2和virtualbox配置文件):

    dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
  3. 删除Java配置和缓存目录:

    sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
  4. 删除手动安装的JVM:

    sudo rm -rf /usr/lib/jvm/*
  5. 替代项中删除Java条目(如果仍有):

    for g in ControlPanel java java_vm javaws jcontrol jexec keytool mozilla-javaplugin.so orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200 appletviewer apt extcheck HtmlConverter idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc xulrunner-1.9-javaplugin.so; do sudo update-alternatives --remove-all $g; done
  6. 搜索可能的剩余Java目录:

    sudo updatedb
    sudo locate -b '\pack200'
    

    如果上面的命令产生任何输出,例如,/path/to/jre1.6.0_34/bin/pack200删除bin的父目录,如下所示:sudo rm -rf /path/to/jre1.6.0_34


6
你测试过这个答案了吗?我可以肯定地说,您已经掌握了一切,但请仔细检查。:)
Jorge Castro

10
@JorgeCastro,绝对。我一个接一个地构建了这些命令,然后通过管道将它们全部组合在一起,并在不同的Java安装场景中运行了所有命令,这些场景是我在工作中的某些工作站中进行测试的目的。我真的很注意通过grep管道传输到的输出apt-get remove,我认为它涵盖了有关通过deb软件包进行安装的几乎所有可能性。
埃里克·卡瓦略

2
尽管给出的命令顺序适用于大多数情况,但我认为我的答案需要一些改进。每个人都可以随意提出可以改进它的更改,例如更好地解释每个命令或指出它们未涵盖的场景。
埃里克·卡瓦略

3
+1为答案。我最近发现了一种情况,删除openjdk会导致其他Java软件包的安装。解决此问题的方法是禁用所有存储库,然后执行删除命令。
Anwar 2012年

1
@EricCarvalho当我发出命令时sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf,来自终端的响应被声明为无效。
2014年

38

要在Ubuntu 11.10上完全删除OpenJDK(这在其他版本的Ubuntu上可能足够,也可能不够),请运行:

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

如果您需要有关删除专有的Oracle(“ Sun”)Java版本的说明,则必须指定安装方式。(如果您编辑问题以表明这一点并对此答案发表评论,我也会尝试添加有关如何删除该问题的信息。)


我尝试了上面的方法,并在Ubuntu 11上完成了没有错误的操作,但是在我仍然可以运行java -version并获得openjdk版本“ 11.0.3”之后,2019-04-16
John Little

17

您可能不需要完全删除OpenJDK即可解决问题。安装sun-java6软件包。然后使用update-java-alternatives切换到Sun java软件包。

如果确实要完全删除OpenJDK,则删除default-jdk和/或default-jre软件包。您可能需要删除一些Java软件包,但是一旦安装了Sun JDK软件包,它们中的大多数应该会很高兴。

删除软件包后,您可能需要遵循以下清理技巧之一。


我已经做了update-java-alternatives。应该提到的。我也做了update-alternatives --config java。现在chrome和firefox告诉我我的Java插件已被阻止,因为它太旧了……
CaldwellYSR

使用--plugin选项运行update-java-alternatives并将其设置回原始值。您可以使用此工具混合和匹配默认值。装有11.10的浏览器可能期望使用sun-java7。
BillThor 2011年

13

要卸载Oracle Java 7,只需按 键盘上的Ctrl+ Alt+ T打开终端。打开时,运行以下命令。

sudo update-alternatives --display java

在卸载Java之前检查设置。

接下来,删除符号链接

(将单词(版本)替换为您的Java版本。java -version请获取您的Java版本。因此,如果您的版本为1.7.0_03,则可以type sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk1.7.0_03/bin/java"

sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk<version>/bin/java"
sudo update-alternatives --remove "javac" "/usr/lib/jvm/jdk<version>/bin/javac"
sudo update-alternatives --remove "javaws" "/usr/lib/jvm/jdk<version>/bin/javaws"

验证符号链接已删除

java -version
javac -version
which javaws

接下来的2个命令必须完全正确地键入,以避免永久破坏系统

cd /usr/lib/jvm
sudo rm -rf jdk<version>

然后做

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws

然后做

sudo vi  /etc/environment

删除带有JAVA_HOME 1的行



卸载OpenJDK(如果已安装)。首先检查安装了哪些OpenJDK软件包。

sudo dpkg --list | grep -i jdk

删除openjdk:

sudo apt-get purge openjdk*

卸载与OpenJDK相关的软件包。

sudo apt-get purge icedtea-* openjdk-*

检查是否已删除所有OpenJDK软件包。

sudo dpkg --list | grep -i jdk

1资料来源: akbarahmed.com


您也不能删除/usr/lib/jvm文件夹吗?据我所知,仅Java使用。
njallam 2012年

我想可以,可以在其中添加,或者可以。
米奇

3

试试这个命令:

java -version

如果出现1.6 *,请尝试:

sudo apt-get autoremove openjdk-6-jre

如果1.7 *出现,请尝试:

sudo apt-get autoremove openjdk-7-jre

假设您的系统中没有jdk。如果使用此命令:

sudo apt-get autoremove openjdk-`<version>`-jdk

替换为之前示例中的版本。


2

更容易使用突触。

单击选项卡的“节”,向下滚动到Java。只需选择带有绿色框的每一项,然后标记为完全删除即可。对所有所有Java部分和所有文件重复上述步骤。


1

同意以利亚。“ apt-get purge”命令可以完全删除那些软件包。

假设您先前已经安装了java-6-sun软件包的副本,那么后续操作将有助于摆脱损坏的符号链接:

sudo update-alternatives --config java

然后选择要链接的正确路径作为默认Java调用路径。

然后使用以下命令检查Java版本:

java -version

0

只需删除所有JDK或JRE文件,例如通常将其安装在以下位置:

/usr/lib/jvm/java-7-oracle

因此,请以root用户权限删除驻留在“ java-7-oracle”文件夹中的所有文件,并在其中提取最新的JDK或JRE文件。就是这样,现在您已经安装了最新的Java版本。

PS您的目录名称可能与java-7-oracle不同

参考:Oracle的官方安装说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.