จะถอนการติดตั้ง Java อย่างสมบูรณ์ได้อย่างไร


คำตอบ:


311
  1. ลบแพ็คเกจ Java ที่เกี่ยวข้องทั้งหมด (Sun, Oracle, OpenJDK, IcedTea plugin, 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. กำจัดไฟล์ปรับแต่ง (ระวังคำสั่งนี้ลบ libsgutils2-2 และไฟล์ปรับแต่ง Virtualbox ด้วย):

    dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
  3. ลบ Java config และแคชไดเรกทอรี:

    sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
  4. ลบ JVM ที่ติดตั้งด้วยตนเอง:

    sudo rm -rf /usr/lib/jvm/*
  5. ลบรายการ 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
  6. ค้นหาไดเรกทอรี Java ที่เหลืออยู่ที่เป็นไปได้:

    sudo updatedb
    sudo locate -b '\pack200'

    ถ้าคำสั่งข้างต้นผลิตออกใด ๆ เช่น/path/to/jre1.6.0_34/bin/pack200ลบไดเรกทอรีที่เป็นแม่ของถังsudo rm -rf /path/to/jre1.6.0_34เช่นนี้


6
คุณได้ทดสอบคำตอบนี้หรือไม่? ฉันแน่ใจว่าคุณจะได้รับทั้งหมด แต่เพียงตรวจสอบอีกครั้ง :)
Jorge Castro

10
@ JorgeCastro อย่างแน่นอน ฉันสร้างคำสั่งเหล่านั้นทีละรายการแล้วเชื่อมต่อเข้าด้วยกันและฉันก็รันคำสั่งทั้งหมดในสถานการณ์การติดตั้ง Java ที่แตกต่างกันซึ่งฉันมีเพื่อการทดสอบในเวิร์กสเตชันที่ทำงาน ฉันให้ความสนใจกับผลลัพธ์ที่ได้จากการgrepส่งไปapt-get removeฉันคิดว่ามันครอบคลุมความเป็นไปได้เกือบทั้งหมดเกี่ยวกับการติดตั้งโดยแพ็คเกจ deb
Eric Carvalho

2
แม้ว่าลำดับของคำสั่งที่นำเสนอจะใช้ได้ในกรณีส่วนใหญ่ แต่ฉันคิดว่าคำตอบของฉันต้องการการปรับปรุงบางอย่าง ทุกคนโปรดอย่าลังเลที่จะแนะนำการเปลี่ยนแปลงที่สามารถปรับปรุงได้เช่นคำอธิบายที่ดีขึ้นของแต่ละคำสั่งหรือชี้ให้เห็นสถานการณ์ที่ไม่ครอบคลุม
Eric Carvalho

3
+1 สำหรับคำตอบ ฉันเพิ่งพบสถานการณ์ที่ลบ openjdk ทำให้การติดตั้งแพคเกจ java อื่น ๆ วิธีแก้ปัญหาสำหรับปัญหานี้คือการปิดใช้งานพื้นที่เก็บข้อมูลทั้งหมดแล้วดำเนินการคำสั่งลบ
Anwar

1
@EricCarvalho เมื่อฉันออกคำสั่งsudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rfการตอบสนองจากสถานีที่ระบุว่าไม่ถูกต้อง
n00b

38

หากต้องการลบ OpenJDK บน Ubuntu 11.10 อย่างสมบูรณ์ (สิ่งนี้อาจหรืออาจไม่เพียงพอสำหรับ Ubuntu รุ่นอื่น) ให้เรียกใช้:

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

หากคุณต้องการคำแนะนำในการลบ Java รุ่น Oracle ("Sun") ที่เป็นกรรมสิทธิ์คุณจะต้องระบุวิธีการติดตั้ง (หากคุณแก้ไขคำถามของคุณเพื่อระบุสิ่งนี้และแสดงความคิดเห็นในคำตอบนี้ฉันจะพยายามเพิ่มข้อมูลเกี่ยวกับวิธีการลบออกด้วย)


ฉันลองข้างต้นแล้วเสร็จโดยไม่มีข้อผิดพลาดบน Ubuntu 11 แต่หลังจากฉันยังสามารถเรียกใช้ java -version และรับรุ่น openjdk กลับ "11.0.3" 2019-04-16
John Little

17

คุณอาจไม่จำเป็นต้องลบ OpenJDK เพื่อแก้ไขปัญหาของคุณ ติดตั้งแพ็กเกจ sun-java6 จากนั้นใช้update-java-alternativesเพื่อสลับไปยังแพ็กเกจ Sun java

หากคุณต้องการลบ OpenJDK อย่างสมบูรณ์ให้ลบแพ็คเกจ default-jdk และ / หรือ default-jre คุณอาจต้องลบแพ็คเกจ Java บางส่วน แต่ส่วนใหญ่ควรจะมีความสุขเมื่อคุณติดตั้งแพ็คเกจ Sun JDK

คุณอาจต้องการปฏิบัติตามหนึ่งในเคล็ดลับการล้างข้อมูลเหล่านี้เมื่อคุณลบแพ็กเกจเสร็จแล้ว


ฉันได้อัปเดตทางเลือก java แล้ว ควรได้กล่าวไว้ว่า ฉันยังปรับปรุงทางเลือก --config java ตอนนี้โครเมี่ยมและ Firefox บอกฉันปลั๊กอิน Java ของฉันถูกบล็อกเพราะมันเป็นเรื่องเก่า ...
CaldwellYSR

เรียกใช้ update-java-ทางเลือกด้วยตัวเลือก --plugin และตั้งค่ากลับเป็นค่าดั้งเดิม คุณสามารถผสมและจับคู่ค่าเริ่มต้นด้วยเครื่องมือนี้ เบราว์เซอร์ที่ติดตั้งพร้อม 11.10 อาจคาดว่า sun-java7
BillThor

13

หากต้องการถอนการติดตั้ง Oracle Java 7 เพียงกด Ctrl+ Alt+ Tบนแป้นพิมพ์เพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง

sudo update-alternatives --display java

เพื่อตรวจสอบการตั้งค่าก่อนถอนการติดตั้ง Java

จากนั้นลบ symlink

(แทนที่คำ (รุ่น) ด้วยเวอร์ชัน Java ของคุณทำjava -versionเพื่อรับของคุณดังนั้นหากเวอร์ชันของคุณคือ 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"

ตรวจสอบว่า symlink ถูกลบ

java -version
javac -version
which javaws

2 คำสั่งต่อไปจะต้องพิมพ์ excatly ที่ดีที่สุดที่จะหลีกเลี่ยงการทำลายอย่างถาวรระบบของคุณ

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

ฉันคิดว่าคุณทำได้คุณสามารถเพิ่มมันเข้าไปในนั้นหรือฉันสามารถทำได้ด้วยการตกลงของคุณ
มิทช์

3

ลองคำสั่งนี้:

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

แทนที่ด้วยรุ่นที่เราทำในตัวอย่างก่อนหน้า


2

ง่ายกว่าคือการใช้ synaptic

คลิกแท็บ "ส่วน" เลื่อนลงไปที่จาวา เพียงเลือกแต่ละรายการที่คุณเห็นด้วยกล่องสีเขียวและทำเครื่องหมายเพื่อลบออกโดยสมบูรณ์ ทำซ้ำสำหรับส่วนของจาวาทั้งหมดและไฟล์ทั้งหมด


1

เห็นด้วยกับ Eliah คำสั่ง "apt-get purge" สามารถลบแพ็กเกจเหล่านั้นได้อย่างสมบูรณ์

สมมติว่าคุณติดตั้งสำเนาของแพคเกจ java-6-sun ไว้ก่อนหน้าการติดตามจะช่วยกำจัดลิงก์สัญลักษณ์ที่ใช้งานไม่ได้:

sudo update-alternatives --config java

จากนั้นเลือกเส้นทางที่ถูกต้องซึ่งคุณต้องการเชื่อมโยงเป็นเส้นทางการโทร Java เริ่มต้น

จากนั้นให้ตรวจสอบเวอร์ชันของ Java ด้วยคำสั่งนี้:

java -version

1

เพียงลบไฟล์ทั้งหมดของ JDK หรือ JRE ตัวอย่างเช่นมันมักจะติดตั้งในตำแหน่งนี้:

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

ดังนั้นลบไฟล์ทั้งหมดที่อยู่ในโฟลเดอร์ "java-7-oracle" ด้วยการอนุญาตรูทและแตกไฟล์ JDK หรือ JRE ล่าสุดในนั้น เพียงเท่านี้คุณก็จะได้ติดตั้งเวอร์ชั่นล่าสุดของ Java แล้ว

PS ชื่อไดเรกทอรีของคุณอาจแตกต่างจากJava-7-oracle

การอ้างอิง: คำสั่งการติดตั้งอย่างเป็นทางการจาก Oracle

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.