วิธีแทนที่ OpenJDK 6 ด้วย OpenJDK 7 ได้อย่างไร


33

น่าแปลกใจ (เนื่องจาก OpenJDK 7 วางจำหน่ายทั่วไปทั่วไปประมาณ 4 เดือนที่ผ่านมา) Ubuntu 11.10 ยังคงใช้ OpenJDK 6 แทน 7 ตามค่าเริ่มต้น ฉันจะแก้ไขได้ดีที่สุดอย่างไร ฉันต้องการลบ OpenJDK 6 อย่างสมบูรณ์และให้ OpenJDK 7 เป็น default-jdk และ default-jre

ฉันไม่ต้องการ tarballs ของออราเคิลอย่างเป็นทางการฉันต้องการ debos - วิธี Ubuntu มาตรฐาน


ใครบางคนจะต้องสร้างมันลงในแพ็คเกจเดเบียนและใส่ลงใน PPA บน Launchpad หากยังไม่มีใครทำเช่นนั้นคุณสามารถสร้าง. deb หรือติดตั้ง tar ได้
Martin Ueding

ยังคงเป็นกรณีที่มี 12.04
Thorbjørn Ravn Andersen

ปี 2554 - ตอนนี้ปี 2555 - ได้รับการแก้ไขแล้วจริงหรือไม่ (ข้อใดถูกพิจารณาว่าเป็นคำตอบlolหรือไม่ถ้าไม่ใช่i gonna write a nice wiki on thisในคำถาม / คำตอบของฉัน

การอัปเกรดระบบของคุณเป็น LTS จะดีกว่า
Ketan Patel

เยี่ยมชมaskubuntu.com/questions/64329/…

คำตอบ:


28

ปัญหาคือdefault-jreแพคเกจขึ้นอยู่กับ OpenJDK 6 และแพ็คเกจอื่น ๆ ส่วนใหญ่มีการอ้างอิงเป็นdefault-jre | openjdk-6-jre | sun-java6-jre- ดังนั้นจนกว่า OpenJDK 7 จะได้รับการสนับสนุนอย่างเป็นทางการและจะใช้เป็นเวอร์ชันเริ่มต้นหรือจนกว่าแพ็คเกจ Java-dependent ทั้งหมดจะอัปเดตการอ้างอิงของคุณ จะต้องเก็บ OpenJDK 6 รอบและตั้ง OpenJDK 7 update-java-alternativesเป็นค่าเริ่มต้นโดยใช้ ตัวอย่างสำหรับระบบ 64 บิต:

$ update-java-alternatives -l
java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64
$ sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

ในระบบ 32 บิตชื่อไดเรกทอรีจะแตกต่างกันคุณสามารถค้นหาชื่อที่ถูกต้องโดยใช้-lสวิตช์ คำสั่งที่สองอาจพ่นข้อผิดพลาดมากมาย ใช้--jreสวิตช์หรือเพียงแค่ละเว้นข้อผิดพลาด - สคริปต์จะเปลี่ยนสิ่งที่สามารถทำได้และเพียงละเว้นส่วนที่เหลือ

ใครสามารถแก้ไขdefault-jreแพคเกจตามหลักวิชาขึ้นอยู่กับ OpenJDK 7 แต่ได้รับการเตือนว่าสิ่งนี้อาจทำให้เกิดอันตรายมากกว่าดี


2
เพื่อให้สิ่งนี้ทำงานได้อย่างแม่นยำฉันต้องแน่ใจว่าสำหรับแต่ละแพ็คเกจ openjdk-6 หรือ icedtea-6 มีแพ็คเกจ openjdk-7 หรือ icetea-7 ที่สอดคล้องกันมิฉะนั้น update-java-alternatives จะล้มเหลวในการเปลี่ยน
Blair Zajac

2
หลังจากติดตั้ง icedtea-7-plugin ( $ sudo apt-get install icedtea-7-plugin) มันทำงานได้ดีบน Ubuntu 12.04 ขอบคุณ
เดวิด

10

สำหรับสิ่งนี้คุณต้องติดตั้ง jdk ทั้งสองเวอร์ชันในระบบของคุณ คุณสามารถใช้ apt-get เพื่อดาวน์โหลดทั้งสอง

หลังจากนั้นลอง

$ sudo update-alternatives --config java

และเลือก jdk ที่คุณต้องการใช้

บางครั้ง Openjdk อาจไม่เหมาะสำหรับบางแอพพลิเคชั่น

คุณควรลองใช้ oracle-java หรือ sun-java

ลิงค์ด้านล่างมีประโยชน์มากสำหรับจุดประสงค์นี้:

http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html


3

OpenJDK 7 นั้นอยู่ใน Ubuntu repos ปกติใน 11.10 ถ้าคุณมองหา openjdk-7-jre และ openjdk-7-jdk และติดตั้งโดยใช้ apt-get / synaptic / software พวกเขาควรจะแทนที่ openjdk-6 คุณสามารถลบแพ็คเกจ openjdk-6- * ก่อนใช้ apt-get purge openjdk-6-*


1
OpenJDK-7- * แพคเกจที่ดูเหมือนจะหมายถึงการได้รับการติดตั้งด้านข้างกับ OpenJDK-6- และถ้าฉันพยายามที่จะลบ openjdk-6-มีแพ็คเกจจำนวนมากที่จะถูกลบออกตามความเป็นจริง
Ivan

เห็นได้ชัดว่าdefault-jreยังคงชี้ไปที่ Java 6
Thorbjørn Ravn Andersen

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