How can I completely remove all traces of Java on my system?
I already know how to install it in case I need it again.
How can I completely remove all traces of Java on my system?
I already know how to install it in case I need it again.
Remove all the Java related packages (Sun, Oracle, OpenJDK, IcedTea plugins, 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
Purge config files (careful. This command removed libsgutils2-2 and virtualbox config files too):
dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
Remove Java config and cache directory:
sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
Remove manually installed JVMs:
sudo rm -rf /usr/lib/jvm/*
Remove Java entries, if there is still any, from the alternatives:
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
Search for possible remaining Java directories:
sudo updatedb
sudo locate -b '\pack200'
If the command above produces any output like /path/to/jre1.6.0_34/bin/pack200
remove the directory that is parent of bin, like this: sudo rm -rf /path/to/jre1.6.0_34
.
To completely remove OpenJDK on Ubuntu 11.10 (this may or may not be sufficient on other versions of Ubuntu), run:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
If you want instructions for removing the proprietary Oracle ("Sun") version of Java, then you'll have to specify how you installed it. (If you edit your question to indicate this and leave a comment to this answer, I'll try to add information about how to remove that too.)
To uninstall Oracle Java 7, just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command below.
sudo update-alternatives --display java
To check the setup before uninstalling Java.
Next, remove symlinks
(replace the word (version)with your Java version. DO java -version
to get yours. So if your version is 1.7.0_03, you would 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"
verify that the symlinks were removed
java -version javac -version which javaws
The next 2 commands must be type excatly perfectly to avoid permanently destroying your system.
cd /usr/lib/jvm sudo rm -rf jdk<version>
Then do
sudo update-alternatives --config java sudo update-alternatives --config javac sudo update-alternatives --config javaws
Then do
sudo vi /etc/environment
Delete the line with JAVA_HOME 1
To uninstall OpenJDK (if installed). First check which OpenJDK packages are installed.
sudo dpkg --list | grep -i jdk
To remove openjdk:
sudo apt-get purge openjdk*
Uninstall OpenJDK related packages.
sudo apt-get purge icedtea-* openjdk-*
Check that all OpenJDK packages have been removed.
sudo dpkg --list | grep -i jdk
1Source:akbarahmed.com
/usr/lib/jvm
folder too? As far as I know that is only used by Java.
– njallam
Sep 08 '12 at 17:54
You may not need to completely remove the OpenJDK to resolve your problem. Install the sun-java6 packages. Then use update-java-alternatives
to switch to the Sun java packages.
If you do want to completely remove OpenJDK remove the default-jdk and/or default-jre packages. You may need to remove some java packages but most of them should be happy once you have the Sun JDK packages installed.
You may want to follow one of these cleanup tips once you are done removing packages.
Try this command:
java -version
If 1.6* comes then try:
sudo apt-get autoremove openjdk-6-jre
If 1.7* comes then try:
sudo apt-get autoremove openjdk-7-jre
Assuming that you don't have jdk in your system. If you have use this command:
sudo apt-get autoremove openjdk-`<version>`-jdk
replace with the version like we did it in previous example.
easier is to use synaptic.
click tab "sections" scroll down to java. simply select each item you see with green box and mark for complete removal. repeat for all all java sections and all files.
Just remove all files of JDK or JRE, for example it's usually installed in this location:
/usr/lib/jvm/java-7-oracle
So remove all files resides in "java-7-oracle" folder with root permission and extract the latest JDK or JRE files in it. That's it now you would have the latest Java version Installed.
P.S. Your directory name may differ from java-7-oracle.
Agreed with Eliah. "apt-get purge" command can remove those packages completely.
Assuming you have previously installed a copy of java-6-sun package, a followup will help getting rid of broken symbolic link:
sudo update-alternatives --config java
And then select a correct path which you want to link up as default Java calling path.
Then have a check on the version of Java with this command:
java -version
grep
that is piped toapt-get remove
, I think that it covers almost all possibilities regarding installation by deb packages. – Eric Carvalho Sep 11 '12 at 00:50sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
the response from the terminal was stated as invalid. – n00b Mar 19 '14 at 15:48.java
directory in your home. What was the actual error message? – Eric Carvalho Mar 19 '14 at 16:34ls: cannot access /home/*/.java: No such file or directory
– n00b Mar 19 '14 at 22:42apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e....
is for the 32-bit OS. I have installed a 64-bit OS. What is the corresponding command? Thanks. – n00b Mar 22 '14 at 16:43sudo apt-get -y autoremove
removes many other packages that I need. Is it OK to just ignore this command? Or could you provide a "gentler" command that does not remove packages other than those have Java in them? – n00b Mar 22 '14 at 16:46/usr/share/bash-completion/completions/pack200`
I should not remove this. Right?
– Atiq Rahman Apr 26 '15 at 06:58apt-cache search java ... | xargs sudo apt-get -y remove
This unfortunately removeslibreoffice, libreoffice-java-common, libreoffice-sdbc-hsqldb
on my machine (Mint x64, running Libreoffice 5.0.1). – direwolf Sep 05 '15 at 07:48xargs
I added-I{}
and at the end of the command I added{}
So, for example instead ofsudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
I runsudo bash -c 'ls -d /home/*/.java' | xargs -I{} sudo rm -rf {}
– mgershen Nov 07 '18 at 15:58find /*/*java*
to find anything else remaining. – Rajan Dec 06 '21 at 18:34sudo find /*/*java* | xargs rm -f
– Tms91 Feb 02 '23 at 00:35