如何完全卸载Java?

Cal*_*YSR 181 uninstall java openjdk

如何完全删除系统上的所有 Java 痕迹?

我已经知道如何安装它,以防我再次需要它。

Eri*_*lho 380

  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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 清除配置文件(小心。此命令也删除了 libsgutils2-2 和 virtualbox 配置文件):

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

    sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
    
    Run Code Online (Sandbox Code Playgroud)
  4. 删除手动安装的 JVM:

    sudo rm -rf /usr/lib/jvm/*
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 搜索可能的剩余 Java 目录:

    sudo updatedb
    sudo locate -b '\pack200'
    
    Run Code Online (Sandbox Code Playgroud)

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

  • @JorgeCastro,绝对。我一个一个地构建了这些命令,然后将它们通过管道连接在一起,并在不同的 Java 安装场景中运行所有这些命令,我​​在一些工作中的工作站中进行了测试。我真的很关注通过管道传输到 apt-get remove 的 grep 的输出,我认为它涵盖了几乎所有关于 deb 包安装的可能性。 (13认同)
  • 你测试过这个答案吗?我有理由肯定你已经掌握了一切,但只是仔细检查一下。:) (7认同)
  • +1为答案。我最近发现了一个场景,删除 openjdk 会导致安装其他 java 包。此问题的解决方法是禁用所有存储库,然后执行删除命令。 (4认同)
  • 尽管所提供的命令序列适用于大多数情况,但我认为我的答案需要一些改进。请大家随意提出可以改进它的更改建议,例如更好地解释每个命令或指出它们未涵盖的场景。 (3认同)
  • @n00b 可能是因为您家中没有 `.java` 目录。实际的错误信息是什么? (2认同)
  • 你可能应该提到它会删除很多不相关的东西......我删除了我的 Netbeans 和许多其他应用程序,ffs ... (2认同)

Eli*_*gan 48

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

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Run Code Online (Sandbox Code Playgroud)

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

  • 我尝试了上述方法,它在 Ubuntu 11 上没有错误地完成,但是在我仍然可以运行 java -version 并返回 openjdk 版本“11.0.3”之后 2019-04-16 (2认同)

Mit*_*tch 22

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

sudo update-alternatives --display java
Run Code Online (Sandbox Code Playgroud)

在卸载 Java 之前检查设置。

接下来,删除符号链接

(用您的 Java 版本替换单词 (version)。一定java -version要得到你的。所以如果你的版本是 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"
Run Code Online (Sandbox Code Playgroud)

验证符号链接是否已删除

java -version
javac -version
which javaws
Run Code Online (Sandbox Code Playgroud)

接下来的 2 个命令必须准确输入以避免永久破坏您的系统

cd /usr/lib/jvm
sudo rm -rf jdk<version>
Run Code Online (Sandbox Code Playgroud)

然后做

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
Run Code Online (Sandbox Code Playgroud)

然后做

sudo vi  /etc/environment
Run Code Online (Sandbox Code Playgroud)

删除带有 JAVA_HOME 1的行



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

sudo dpkg --list | grep -i jdk
Run Code Online (Sandbox Code Playgroud)

要删除 openjdk:

sudo apt-get purge openjdk*
Run Code Online (Sandbox Code Playgroud)

卸载 OpenJDK 相关软件包。

sudo apt-get purge icedtea-* openjdk-*
Run Code Online (Sandbox Code Playgroud)

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

sudo dpkg --list | grep -i jdk
Run Code Online (Sandbox Code Playgroud)

1资料来源: akbarahmed.com


Bil*_*hor 18

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

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

完成删除软件包后,您可能需要遵循这些清理技巧之一。


Pra*_*uva 5

试试这个命令:

java -version
Run Code Online (Sandbox Code Playgroud)

如果 1.6* 出现,请尝试:

sudo apt-get autoremove openjdk-6-jre
Run Code Online (Sandbox Code Playgroud)

如果 1.7* 出现,请尝试:

sudo apt-get autoremove openjdk-7-jre
Run Code Online (Sandbox Code Playgroud)

假设您的系统中没有 jdk。如果你已经使用了这个命令:

sudo apt-get autoremove openjdk-`<version>`-jdk
Run Code Online (Sandbox Code Playgroud)

替换为我们在前面的示例中所做的版本。