update-java-ทางเลือก vs update-ทางเลือก --config java


96

บน Ubuntu 12.04 LTS ฉันได้ติดตั้ง JDK7, Eclipse และ Arduino IDE ของ Sun แล้ว ฉันต้องการ Arduino เพื่อใช้ OpenJDK 6 และต้องการ Eclipse ใช้ JDK 7 ของ Sun

จากความเข้าใจของฉันฉันต้องเลือก Java ด้วยตนเองก่อนที่จะเรียกใช้แต่ละแอปพลิเคชัน สิ่งนี้นำฉันไปสู่update-java-alternatives -lคำสั่ง เมื่อฉันเรียกใช้สิ่งนี้ฉันเห็นเฉพาะสิ่งต่อไปนี้:

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64

แต่เมื่อฉันวิ่งupdate-alternatives --config javaฉันเห็นต่อไปนี้:

*0  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   auto mode
1  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   manual mode
2  /usr/lib/jvm/jdk1.7.0/bin/java                   manual mode
3  /usr/lib/jvm/jre1.7.0/bin/java                   manual mode

ฉันไม่เข้าใจว่าทำไมตัวเลือกถึงupdate-java-alternativesไม่แสดง 3 ตัวเลือกเดียวกัน ฉันยังไม่เข้าใจวิธีการสลับระหว่าง OpenJDK6 และ JDK7 ฉันจะไปเกี่ยวกับการใช้ OpenJDK6 สำหรับการพัฒนา Arduino และ Sun JDK7 สำหรับการพัฒนา Eclipse / Android ได้อย่างไร

คำตอบ:


126

sudo update-alternatives --config java

กำหนดค่าเริ่มต้นสำหรับโปรแกรม "java" นั่นคือ Java VM

sudo update-alternatives --config javac

กำหนดค่าคอมไพเลอร์ Java เริ่มต้น

คุณยังสามารถเห็นได้ว่าเนื่องจากคำสั่งแรกแสดงรายการโฟลเดอร์ "JRE" (Java Runtime Environment) จำนวนมากและโปรแกรมเรียกว่า "java"

หากฉันตรวจสอบว่ามีการใช้เวอร์ชันใดโดยการออกคำสั่ง java -version หรือ javac -versionฉันสามารถเห็นได้ว่าแต่ละคำสั่งเปลี่ยนโปรแกรมที่กำลังใช้งานอยู่

อย่างไรก็ตามการใช้update-java-alternativesกับ JDK Version นั้นเป็นการเปลี่ยนโปรแกรมทั้งสองสำหรับฉัน การใช้คำสั่งแรกคุณสามารถใช้ Java VM และ Java Compiler จาก JDK ต่างๆ

update-java-ทางเลือกต้องการการมีไฟล์ที่มีนามสกุล. Jinfo ในไดเรกทอรี / usr / lib / jvm แพ็คเกจ opendjk จัดส่งมาพร้อมกับไฟล์. jinfo ซึ่งเป็น jdk ของ Oracle (ชื่อเดิมคือ Sun) ไม่ใช่ เป็นทางเลือกคุณกำหนดค่าทางเลือกโดยไม่มี update-java-ทางเลือก :

ตัวอย่างเช่นหากต้องการเพิ่ม java จาก jvm-directory /usr/lib/jvm/jdk-12.0.1 ( ไดเรกทอรีเริ่มต้นของแพ็คเกจ Debian ของ Oracle ) ที่มีลำดับความสำคัญ 2082 ใช้คำสั่งต่อไปนี้:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-12.0.1/bin/java 2082

สำหรับการสลับสำหรับสภาพแวดล้อมการพัฒนาที่แตกต่างกัน:

คุณกำลังพูดถึงการเริ่มต้น IDE ด้วยเวอร์ชั่น Java ที่แตกต่างกันหรือใช้เวอร์ชั่นที่แตกต่างกันใน IDE เพื่อรวบรวมและเรียกใช้แอปของคุณ?

1 .: คุณสามารถระบุ JVM ที่ต้องการใช้ในการ eclipse.ini ตามที่อธิบายไว้ที่นี่ ฉันไม่รู้วิธีการทำเช่นนั้นสำหรับ Arduino IDE

สำหรับ 2: ใน Eclipse คุณสามารถเลือก JRE / JDK ที่จะใช้ในหน้าต่าง -> การตั้งค่า -> Java -> JRE ที่ติดตั้ง และภายใต้ Java -> คอมไพเลอร์คุณสามารถเลือกการปฏิบัติตามจาวาที่เก่ากว่าถ้าคุณต้องการ

แก้ไข: หน้า DigitalOcean นี้ยังมีคำอธิบายที่ดีมากของทุกสิ่งที่เกี่ยวข้องกับ Java บน Ubuntu


15

update-java-alternativesเป็นโปรแกรมสำหรับอัพเดตทางเลือกสำหรับjre/jdkการติดตั้ง

update-alternatives เป็นระบบจัดการลิงค์สัญลักษณ์สำหรับ linux (ฉันแน่ใจว่ามีข่าวเล็กน้อยที่นี่)

คุณสามารถและจริงๆควรใช้ทั้งสองupdate-java-alternativesและupdate-alternativesร่วมกัน

ประการแรกตรวจสอบให้แน่ใจว่าได้ตั้งค่าตัวเลือกทั้งหมดอย่างถูกต้อง java และ javac เป็นเพียงไม่กี่ นอกจากนี้javadoc, rmic, serialverและคนอื่น ๆ แทนตัวแปรข้างต้นสำหรับ: native2asciiและ/opt/jdk1.8.0_40/bin/native2asciiควรรายงานถ้าทางเลือกที่มีการติดตั้งและ / หรือเลือก

เมื่อมีการกำหนดค่าทางเลือกทั้งหมดคุณสามารถสร้างลิงก์ใน /usr/lib/jvmการติดตั้งด้วยตนเองของคุณ

ในการกำหนดค่าupdate-java-alternativesคุณต้องใช้ไฟล์ที่ซ่อนด้วยชื่อเดียวกันกับไดเรกทอรีของคุณ แต่มีคำนำหน้าโดย (dot)

หวังว่านี่จะช่วยได้

บรรณานุกรม

man -S 8 update-java-alternatives

http://tech.lanesnotes.com/2008/03/using-alternatives-in-linux-to-use.html

https://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as-the-default-java-in-ubuntu

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