Bagaimana cara meng-uninstall sepenuhnya Java?

147

Bagaimana saya bisa sepenuhnya menghapus semua jejak Java di sistem saya?

Saya sudah tahu cara menginstalnya jika saya membutuhkannya lagi.

CaldwellYSR
sumber

Jawaban:

311
  1. Hapus semua paket terkait Java (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. Bersihkan file konfigurasi (hati-hati. Perintah ini juga menghapus libsgutils2-2 dan file konfigurasi virtualbox):

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

    sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
  4. Hapus JVM yang dipasang secara manual:

    sudo rm -rf /usr/lib/jvm/*
  5. Hapus entri Java, jika masih ada, dari alternatif :

    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. Cari kemungkinan direktori Java yang tersisa:

    sudo updatedb
    sudo locate -b '\pack200'

    Jika perintah diatas menghasilkan output apapun seperti /path/to/jre1.6.0_34/bin/pack200menghapus direktori yang induk dari bin , seperti ini: sudo rm -rf /path/to/jre1.6.0_34.

Eric Carvalho
sumber
6
Sudahkah Anda menguji jawaban ini? Saya cukup yakin Anda sudah mendapatkan semuanya, tetapi hanya memeriksa dua kali. :)
Jorge Castro
10
@JorgeCastro, tentu saja. Saya membangun perintah-perintah itu satu per satu, lalu menyatukan semuanya dan saya menjalankan semuanya dalam skenario instalasi Java yang berbeda yang saya miliki untuk keperluan pengujian di beberapa workstation di tempat kerja. Saya benar-benar memperhatikan output grepyang disalurkan ke apt-get remove, saya pikir itu mencakup hampir semua kemungkinan instalasi dengan paket deb.
Eric Carvalho
2
Meskipun urutan perintah yang disajikan berfungsi pada kebanyakan kasus, saya pikir jawaban saya perlu beberapa perbaikan. Semua orang, silakan, menyarankan perubahan yang dapat meningkatkannya, seperti penjelasan yang lebih baik dari setiap perintah atau menunjukkan skenario yang tidak tercakup oleh mereka.
Eric Carvalho
3
+1 untuk jawabannya. Saya baru-baru ini menemukan sebuah skenario di mana menghapus openjdk menyebabkan instalasi paket java lainnya. Solusi untuk masalah ini adalah menonaktifkan semua repositori dan kemudian jalankan perintah penghapusan.
Anwar
1
@EricCarvalho Ketika saya mengeluarkan perintah sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf, respons dari terminal dinyatakan tidak valid.
n00b
38

Untuk sepenuhnya menghapus OpenJDK di Ubuntu 11.10 (ini mungkin atau mungkin tidak cukup pada versi lain dari Ubuntu), jalankan:

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

Jika Anda ingin instruksi untuk menghapus versi Java ("Sun") Oracle, maka Anda harus menentukan cara Anda menginstalnya. (Jika Anda mengedit pertanyaan Anda untuk menunjukkan ini dan meninggalkan komentar untuk jawaban ini, saya akan mencoba menambahkan informasi tentang cara menghapusnya juga.)

Eliah Kagan
sumber
Saya mencoba di atas, dan selesai tanpa kesalahan di Ubuntu 11, tetapi setelah saya masih dapat menjalankan java-versi dan kembali versi openjdk "11.0.3" 2019-04-16
John Little
17

Anda mungkin tidak perlu menghapus OpenJDK sepenuhnya untuk menyelesaikan masalah Anda. Instal paket sun-java6. Kemudian gunakan update-java-alternativesuntuk beralih ke paket Java java.

Jika Anda benar-benar ingin menghapus OpenJDK, hapus paket default-jdk dan / atau default-jre. Anda mungkin perlu menghapus beberapa paket java tetapi kebanyakan dari mereka akan senang setelah Anda menginstal paket JDK Sun.

Anda mungkin ingin mengikuti salah satu tips pembersihan ini setelah Anda selesai menghapus paket.

BillThor
sumber
Saya sudah melakukan pembaruan-java-alternatif. Seharusnya disebutkan itu. Saya juga melakukan pembaruan-alternatif --config java. Sekarang chrome dan firefox beri tahu saya plugin java saya diblokir karena sudah tua ...
CaldwellYSR
Jalankan pembaruan-java-alternatif dengan opsi --plugin dan atur kembali ke nilai aslinya. Anda dapat mencampur dan mencocokkan default dengan alat ini. Browser yang diinstal dengan 11.10 mungkin mengharapkan sun-java7.
BillThor
13

Untuk menghapus instalan Oracle Java 7, cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Ketika terbuka, jalankan perintah di bawah ini.

sudo update-alternatives --display java

Untuk memeriksa pengaturan sebelum menghapus instalasi Java.

Selanjutnya, hapus symlink

(ganti kata (versi) dengan versi Java Anda. LAKUKAN java -versionuntuk mendapatkan milik Anda. Jadi, jika versinya adalah 1.7.0_03, Anda akan melakukannya 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"

verifikasi bahwa symlink telah dihapus

java -version
javac -version
which javaws

2 perintah selanjutnya harus diketik dengan sempurna untuk menghindari kerusakan sistem Anda secara permanen .

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

Lalu lakukan

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

Lalu lakukan

sudo vi  /etc/environment

Hapus baris dengan JAVA_HOME 1



Untuk menghapus instalasi OpenJDK (jika diinstal). Pertama periksa paket OpenJDK mana yang diinstal.

sudo dpkg --list | grep -i jdk

Untuk menghapus openjdk:

sudo apt-get purge openjdk*

Copot paket OpenJDK terkait.

sudo apt-get purge icedtea-* openjdk-*

Periksa bahwa semua paket OpenJDK telah dihapus.

sudo dpkg --list | grep -i jdk

1 Sumber: akbarahmed.com

Mitch
sumber
Bisakah Anda tidak menghapus /usr/lib/jvmfolder juga? Sejauh yang saya tahu itu hanya digunakan oleh Java.
njallam
Saya kira Anda bisa, Anda bisa menambahkan itu di sana, atau saya bisa dengan OK.
Mitch
3

Coba perintah ini:

java -version

Jika 1.6 * datang maka coba:

sudo apt-get autoremove openjdk-6-jre

Jika 1,7 * datang maka coba:

sudo apt-get autoremove openjdk-7-jre

Dengan asumsi bahwa Anda tidak memiliki jdk di sistem Anda. Jika Anda telah menggunakan perintah ini:

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

ganti dengan versi seperti yang kita lakukan pada contoh sebelumnya.

Pranit Bauva
sumber
2

lebih mudah menggunakan sinaptik.

klik tab "bagian" gulir ke bawah ke java. cukup pilih setiap item yang Anda lihat dengan kotak hijau dan tandai untuk penghapusan lengkap. ulangi untuk semua bagian java dan semua file.

merampok grune
sumber
1

Setuju dengan Eliah. Perintah "apt-get purge" dapat menghapus paket-paket itu sepenuhnya.

Dengan asumsi Anda sebelumnya telah menginstal salinan paket java-6-sun, tindak lanjut akan membantu menghilangkan tautan simbolis yang rusak:

sudo update-alternatives --config java

Dan kemudian pilih jalur yang benar yang ingin Anda tautkan sebagai jalur panggilan Java default.

Kemudian periksa versi Java dengan perintah ini:

java -version
code_x747
sumber
1

Hapus saja semua file JDK atau JRE, misalnya biasanya dipasang di lokasi ini:

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

Jadi hapus semua file yang berada di folder "java-7-oracle" dengan izin root dan ekstrak file JDK atau JRE terbaru di dalamnya. Itu saja sekarang Anda akan menginstal versi Java terbaru.

PS Nama direktori Anda mungkin berbeda dari java-7-oracle .

Referensi: Instruksi instalasi resmi dari Oracle

Sohail xIN3N
sumber