Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
up vote 14 down vote accepted

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.

share|improve this answer
I did the update-java-alternatives already. Should have mentioned that. I also did update-alternatives --config java. Now chrome and firefox tell me my java plugin is blocked because it's old... – CaldwellYSR Dec 2 '11 at 3:13
Run update-java-alternatives with the --plugin option and set it back to the original value. You can mix and match defaults with this tool. The browsers installed with 11.10 may be expecting sun-java7. – BillThor Dec 2 '11 at 3:24
Ah there we go. Thank you very much – CaldwellYSR Dec 2 '11 at 3:29
up vote 139 down vote
  1. 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
  2. Purge config files:

    dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
  3. Remove Java config and cache directory:

    sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
  4. Remove manually installed JVMs:

    sudo rm -rf /usr/lib/jvm/*
  5. Remove Java entries, if there is still any, from the alternatives:

    for g in ControlPanel java java_vm javaws jcontrol jexec keytool 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; do sudo update-alternatives --remove-all $g; done
  6. 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.

share|improve this answer
Have you tested this answer? I'm reasonably certain you've got it all, but just double checking. :) – Jorge Castro Sep 10 '12 at 19:03
@JorgeCastro, absolutely. I built those commands one by one, then piped it all together and I ran all of them in different Java installation scenarios that I have for test purposes in some workstations at work. I really paid attention to the output of grepthat is piped to apt-get remove, I think that it covers almost all possibilities regarding installation by deb packages. – Eric Carvalho Sep 11 '12 at 0:50
Although the presented sequence of commands works on most cases, I think my answer needs some improvements. Everybody, please, feel free to suggest changes that can improve it, like better explanation of each command or pointing out a scenario not covered by them. – Eric Carvalho Sep 11 '12 at 1:11
+1 for the answer. I recently found a scenario where removing openjdk causes installation of other java packages. A workaround for this problem is disabling all of the repository and then execute the removal command. – Anwar Shah Sep 11 '12 at 8:54
This is such a crazy good answer. Omfg. Thanks so much for this. – cubsink Mar 15 '13 at 21:27

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.)

share|improve this answer

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

share|improve this answer
Could you not remove the /usr/lib/jvm folder too? As far as I know that is only used by Java. – njallam Sep 8 '12 at 17:54
I suppose you could, you can add that in there, or I can with your OK. – Mitch Sep 8 '12 at 17:55

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.

share|improve this answer

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
share|improve this answer

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.

share|improve this answer

Just remove all files of JDK or JRE, for example it's usually installed in this location:


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.

Reference: Official installation instruction from Oracle

share|improve this answer

I followed strictly the steps that Eric Carvalho provided to remove all instances of Java and rebooted my computer. Next I ran the following command:

aptitude search ~ijdk ~ijava ~ijre ~iicedt

The results are as follows:

idA gir1.2-javascriptcoregtk-3.0    - GObject introspection data for the GTK+-ba
i A libapache-pom-java              - Maven metadata for all Apache Software pro
idA libatk-wrapper-java             - ATK implementation for Java using JNI     
idA libatk-wrapper-java-jni         - ATK implementation for Java using JNI (JNI
i A libcommons-beanutils-java       - utility for manipulating JavaBeans        
i A libcommons-collections3-java    - A set of abstract data type interfaces and
i A libcommons-compress-java        - Java API for working with tar, zip and bzi
i A libcommons-digester-java        - Rule based XML Java object mapping tool   
i A libcommons-logging-java         - commmon wrapper interface for several logg
i A libcommons-parent-java          - Maven metadata for Apache Commons project 
i A libdb-java                      - Berkeley Database Libraries for Java      
i A libdb-je-java                   - Oracle Berkeley Database Java Edition     
i A libdb5.1-java                   - Berkeley v5.1 Database Libraries for Java 
i A libdb5.1-java-jni               - Berkeley v5.1 Database Libraries for Java 
idA libhsqldb-java                  - Java SQL database engine                  
i A libicu4j-java                   - Library for unicode support and internalis
i A libjavascriptcoregtk-1.0-0      - Javascript engine library for GTK+        
i A libjavascriptcoregtk-3.0-0      - Javascript engine library for GTK+        
idA libjaxp1.3-java                 - Java XML parser and transformer APIs (DOM,
i A libjline-java                   - Java library for handling console input   
i A libjtidy-java                   - JTidy                                     
i A liblucene2-java                 - Full-text search engine library for Java(T
i A libregexp-java                  - Regular expression library for Java       
i A libservlet2.5-java              - Servlet 2.5 and JSP 2.1 Java API classes  
idA libxalan2-java                  - XSL Transformations (XSLT) processor in Ja
idA libxerces2-java                 - Validating XML parser for Java with DOM le
idA libxml-commons-external-java    - XML Commons external code - DOM, SAX, and 
idA libxml-commons-resolver1.1-java - XML entity and URI resolver library       
i A libxz-java                      - Java library with a complete implementatio
idA tzdata-java                     - time zone and daylight-saving time data fo

My questions:

  1. Is it safe to remove the results of the aptitude search? I mean, will removing them lead to instability?

  2. If "yes", how do I remove them from my computer?

I am new to Ubuntu.

share|improve this answer
All these packages were automatically installed (A flag) because they are dependencies of another packages. The ones with a d flag are marked for deletion, I don't know why they weren't removed by apt-get autoremove, probably they can be deleted. Don't remove gir1.2* nor libjavascript*! I recommend you install deborphan and run deborphan -a --ignore-suggests | sort, it'll show the packages that aren't dependencies of other packages. Run deborphan -a --ignore-suggests <package-name> to see which packages depend on a particular package. – Eric Carvalho Mar 19 '14 at 23:21
First purge the packages with a d flag, then purge the others one after another. READ what aptitude tells you, if it offers to remove packages not in that list stop immediately. – Eric Carvalho Mar 19 '14 at 23:25
@EricCarvalho Thanks for your suggestions and time. I shall try them out. If I leave the results -I mean the files mentioned in my above post- intact on my system, will they be targets of Java hackers? The reason I wanted to remove all instances of Java is to prevent hackers. It was all over the news and the internet that a US government agency strongly discourages the use of Java due to multiple critical vulnerabilities. – n00b Mar 19 '14 at 23:34
You don't have a Java Runtime Environment installed, then there's no way to run any java application. Those packages are only APIs (interfaces between java and another program). Usually a package with "-jre" in its name is needed in order to run java code. – Eric Carvalho Mar 20 '14 at 0:00

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.