Làm cách nào để gỡ cài đặt hoàn toàn Java?


Câu trả lời:


311
  1. Xóa tất cả các gói liên quan đến Java (Sun, Oracle, OpenJDK, plugin 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
  2. Lọc tập tin cấu hình (cẩn thận. Lệnh này đã loại bỏ libsgutils2-2 và tập tin cấu hình hộp ảo):

    dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
  3. Xóa cấu hình Java và thư mục bộ đệm:

    sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
  4. Xóa các JVM được cài đặt thủ công:

    sudo rm -rf /usr/lib/jvm/*
  5. Xóa các mục Java, nếu vẫn còn bất kỳ, khỏi các lựa chọn thay thế :

    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. Tìm kiếm các thư mục Java còn lại có thể:

    sudo updatedb
    sudo locate -b '\pack200'

    Nếu lệnh trên tạo ra bất kỳ đầu ra nào như /path/to/jre1.6.0_34/bin/pack200loại bỏ thư mục gốc của bin , như thế này : sudo rm -rf /path/to/jre1.6.0_34.


6
Bạn đã thử câu trả lời này chưa? Tôi chắc chắn rằng bạn đã có tất cả, nhưng chỉ cần kiểm tra lại. :)
Jorge Castro

10
@JorgeCastro, hoàn toàn. Tôi đã xây dựng từng lệnh một, sau đó kết hợp tất cả các lệnh lại với nhau và tôi đã chạy tất cả chúng trong các kịch bản cài đặt Java khác nhau mà tôi có cho mục đích thử nghiệm trong một số máy trạm tại nơi làm việc. Tôi thực sự chú ý đến đầu ra của grepapt-get remove, tôi nghĩ rằng nó bao gồm hầu hết các khả năng liên quan đến việc cài đặt bởi các gói deb.
Eric Carvalho

2
Mặc dù chuỗi lệnh được trình bày hoạt động trên hầu hết các trường hợp, tôi nghĩ rằng câu trả lời của tôi cần một số cải tiến. Mọi người, xin vui lòng, đề nghị thay đổi có thể cải thiện nó, như giải thích tốt hơn về từng lệnh hoặc chỉ ra một kịch bản không được bao phủ bởi chúng.
Eric Carvalho

3
+1 cho câu trả lời. Gần đây tôi đã tìm thấy một kịch bản trong đó loại bỏ openjdk gây ra cài đặt các gói java khác. Một cách giải quyết cho vấn đề này là vô hiệu hóa tất cả các kho lưu trữ và sau đó thực hiện lệnh gỡ bỏ.
Anwar

1
@EricCarvalho Khi tôi ban hành lệnh sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf, phản hồi từ thiết bị đầu cuối được xác định là không hợp lệ.
n00b

38

Để xóa hoàn toàn OpenJDK trên Ubuntu 11.10 (điều này có thể hoặc không đủ trên các phiên bản Ubuntu khác), hãy chạy:

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

Nếu bạn muốn hướng dẫn loại bỏ phiên bản Java ("Mặt trời") độc quyền của Java, thì bạn sẽ phải chỉ định cách bạn đã cài đặt nó. (Nếu bạn chỉnh sửa câu hỏi của mình để chỉ ra câu hỏi này và để lại nhận xét cho câu trả lời này, tôi sẽ cố gắng thêm thông tin về cách loại bỏ câu hỏi đó.)


Tôi đã thử ở trên và nó đã hoàn thành mà không gặp lỗi trên Ubuntu 11, nhưng sau khi tôi vẫn có thể chạy java -version và lấy lại phiên bản openjdk "11.0.3" 2019-04-16
John Little

17

Bạn có thể không cần phải xóa hoàn toàn OpenJDK để giải quyết vấn đề của mình. Cài đặt các gói sun-java6. Sau đó sử dụng update-java-alternativesđể chuyển sang các gói Sun java.

Nếu bạn muốn loại bỏ hoàn toàn OpenJDK, hãy loại bỏ các gói default-jdk và / hoặc default-jre. Bạn có thể cần phải xóa một số gói java nhưng hầu hết chúng sẽ rất vui khi bạn đã cài đặt các gói Sun JDK.

Bạn có thể muốn làm theo một trong những mẹo dọn dẹp này sau khi hoàn thành việc gỡ bỏ các gói.


Tôi đã thực hiện các thay thế cập nhật java. Nên đã đề cập rằng. Tôi cũng đã cập nhật thay thế --config java. Bây giờ chrome và firefox cho tôi biết plugin java của tôi đã bị chặn vì nó đã cũ ...
CaldwellYSR

Chạy update-java-thay thế với tùy chọn --plugin và đặt nó trở về giá trị ban đầu. Bạn có thể trộn và kết hợp mặc định với công cụ này. Các trình duyệt được cài đặt với 11.10 có thể đang mong đợi sun-java7.
BillThor

13

Để gỡ cài đặt Oracle Java 7, chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím của bạn để mở Terminal. Khi nó mở ra, chạy lệnh bên dưới.

sudo update-alternatives --display java

Để kiểm tra thiết lập trước khi gỡ cài đặt Java.

Tiếp theo, xóa liên kết tượng trưng

(thay thế từ (phiên bản) bằng phiên bản Java của bạn. NÊN java -versionđể lấy từ của bạn. Vì vậy, nếu phiên bản của bạn là 1.7.0_03, bạn sẽ 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"

xác minh rằng các liên kết tượng trưng đã bị xóa

java -version
javac -version
which javaws

2 lệnh tiếp theo phải được gõ hoàn hảo để tránh phá hủy vĩnh viễn hệ thống của bạn .

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

Sau đó làm

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

Sau đó làm

sudo vi  /etc/environment

Xóa dòng bằng JAVA_HOME 1



Để gỡ cài đặt OpenJDK (nếu được cài đặt). Trước tiên hãy kiểm tra các gói OpenJDK được cài đặt.

sudo dpkg --list | grep -i jdk

Để xóa openjdk:

sudo apt-get purge openjdk*

Gỡ cài đặt các gói liên quan đến OpenJDK.

sudo apt-get purge icedtea-* openjdk-*

Kiểm tra xem tất cả các gói OpenJDK đã bị xóa.

sudo dpkg --list | grep -i jdk

1 Nguồn: akbarahmed.com


Bạn có thể không loại bỏ các /usr/lib/jvmthư mục quá? Theo như tôi biết thì chỉ được Java sử dụng.
njallam

Tôi cho rằng bạn có thể, bạn có thể thêm nó vào đó, hoặc tôi có thể với OK của bạn.
Mitch

3

Hãy thử lệnh này:

java -version

Nếu 1.6 * đến thì hãy thử:

sudo apt-get autoremove openjdk-6-jre

Nếu 1.7 * đến thì hãy thử:

sudo apt-get autoremove openjdk-7-jre

Giả sử rằng bạn không có jdk trong hệ thống của mình. Nếu bạn đã sử dụng lệnh này:

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

thay thế bằng phiên bản như chúng ta đã làm trong ví dụ trước.


2

dễ dàng hơn là sử dụng synap.

nhấp vào tab "phần" cuộn xuống java. chỉ cần chọn từng mục bạn nhìn thấy với hộp màu xanh lá cây và đánh dấu để loại bỏ hoàn toàn. lặp lại cho tất cả các phần java và tất cả các tệp.


1

Đồng ý với Eliah. Lệnh "apt-get purge" có thể loại bỏ hoàn toàn các gói đó.

Giả sử trước đây bạn đã cài đặt một bản sao của gói java-6-sun, việc theo dõi sẽ giúp loại bỏ liên kết tượng trưng bị hỏng:

sudo update-alternatives --config java

Và sau đó chọn một đường dẫn chính xác mà bạn muốn liên kết làm đường dẫn gọi Java mặc định.

Sau đó kiểm tra phiên bản Java bằng lệnh này:

java -version

1

Chỉ cần xóa tất cả các tệp của JDK hoặc JRE, ví dụ: nó thường được cài đặt ở vị trí này:

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

Vì vậy, hãy xóa tất cả các tệp nằm trong thư mục "java-7-oracle" với quyền root và trích xuất các tệp JDK hoặc JRE mới nhất trong đó. Đó là bây giờ bạn sẽ có phiên bản Java mới nhất được cài đặt.

PS Tên thư mục của bạn có thể khác với java-7-oracle .

Tham khảo: Hướng dẫn cài đặt chính thức từ Oracle

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.