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

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

#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



清除配置文件(小心。此命令也删除了libsgutils2-2和virtualbox配置文件):

dpkg -l | grep ^rc | awk '{print()}' | xargs sudo apt-get -y purge



删除Java配置和缓存目录:

sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf



删除手动安装的JVM:

sudo rm -rf /usr/lib/jvm/*



删除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



搜索可能的剩余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



评论


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

–乔治·卡斯特罗(Jorge Castro)
2012年9月10日19:03

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

–埃里克·卡瓦略(Eric Carvalho)
2012年9月11日下午0:50

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

–埃里克·卡瓦略(Eric Carvalho)
2012年9月11日,1:11

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

–安瓦尔
2012年9月11日在8:54

@ n00b可能是因为您的家中没有.java目录。实际的错误消息是什么?

–埃里克·卡瓦略(Eric Carvalho)
2014年3月19日下午16:34

#2 楼

要在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

–约翰·利特尔
19年5月24日在14:17

#3 楼


要卸载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


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

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年9月8日17:54



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

– Mitch♦
2012年9月8日17:55



#4 楼

您可能不需要完全删除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
2011年12月2日,下午3:13

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

–BillThor
2011年12月2日,下午3:24

#5 楼

尝试以下命令:

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


替换为与上一个示例中相同的版本。

#6 楼



单击选项卡的“ sections”
向下滚动到Java。
简单地选择每个带有绿色框的项目并标记为完全删除。
对所有所有Java节和所有文件重复。

#7 楼

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

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

sudo update-alternatives --config java


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

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

java -version


#8 楼

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

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

因此,删除所有文件都位于“ java-7-oracle”文件夹中, root权限,并在其中提取最新的JDK或JRE文件。就是这样,您将安装最新的Java版本。

P.S.您的目录名称可能不同于java-7-oracle。

参考:Oracle的官方安装说明