Java เวอร์ชันหลายเวอร์ชันรองรับตำแหน่ง OS X และ JAVA_HOME


12

ฉันรู้ว่าเป็นไปได้ที่จะมี Java หลายเวอร์ชันบน OS X แต่ฉันพบว่ามันยากที่จะเข้าใจวิธีการทำงาน

ฉันอัพเกรดเป็น Mountain Lion และตอนนี้echo $JAVA_HOMEว่างเปล่า

อย่างไรก็ตามใน /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current

เมื่อฉันไปที่ 1.4.2 และฉันรันjava - versionหรือ./java -version

สภาพแวดล้อมรันไทม์ Java (TM) SE ( บิลด์1.6.0 _33-b03-424-11M3720)

เหตุใดจึงใช้เวอร์ชันเหล่านี้ทั้งหมดหากมี Java เวอร์ชันเดียวกัน

จากนั้นฉันดาวน์โหลด JDK 7 จาก Oracle และติดตั้ง

ปกติจะติดตั้ง JDK ใหม่ที่ไหน?

และคำถามสุดท้าย: ฉันจะเลือกเวอร์ชันที่ควรใช้โดยแอพพลิเคชั่นทั้งหมดได้อย่างไร?

ในการชนะ ฉันตั้งค่าJAVA_HOMEเป็นC:/ProgramFiles/Java/.… ฉันใส่ในเส้นทาง: สถานที่ตั้งJAVA_HOME/binและนั่นแหล่ะ


1
อาจน่าสนใจเนื่องจาก Oracle ใช้คำว่า JRE เพื่ออธิบายปลั๊กอิน Java applet เพียงอย่างเดียว (ทำให้สับสน!) และเนื่องจากผู้ใช้ OS X สามารถใช้สองเวอร์ชันที่แตกต่างกันพร้อมกัน (หนึ่งเวอร์ชันสำหรับปลั๊กอินเป็นเวอร์ชันที่แตกต่างกันสำหรับแอพที่ไม่ใช้ปลั๊กอิน): จะจัดการจาวารุ่นต่าง ๆ บน Mountain Lion ได้อย่างไร
เกรแฮมเพอร์ริน

คำตอบ:


3

เนื้อหาของ /System/Library/Frameworks/JavaVM.framework/Versions

สำหรับกรณีการใช้งานส่วนใหญ่CurrentJDKควรจัดเตรียมการทำงานของJDK รุ่นปัจจุบันและที่ผ่านมา

ไม่ใช่รุ่นที่ผ่านมาทั้งหมด แต่รุ่นที่ต้องการมากที่สุด:

sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8
BuildVersion:   12A269
sh-3.2$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6.0 -> CurrentJDK
drwxr-xr-x  8 root  wheel  272 17 Jul 07:48 A
lrwxr-xr-x  1 root  wheel    1 17 Jul 07:47 Current -> A
lrwxr-xr-x  1 root  wheel   59 17 Jul 07:47 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
sh-3.2$ 

14

ต้องการรุ่นของ Java

ใช้ Java Preferences ตามปกติ

ขึ้นอยู่กับสิ่งที่คุณติดตั้งนอกเหนือจากการจำหน่ายจาวาของ Apple แท็บแรกของยูทิลิตีอาจแตกต่างกันเล็กน้อย

ตัวอย่างเช่นไม่มีตัวเลือกที่คุ้นเคยสำหรับ applets และ Java Web Start:

สกรีนช็อตของการตั้งค่า Java

มีการอ่านพื้นหลังบางอย่างเกี่ยวกับวิธีการทำงานในระดับบรรทัดคำสั่ง เครื่องมือบรรทัดคำสั่งjava_homeรายงานการตั้งค่านี้กลับมา

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home

แอพ/ usr / bin / javaตัวยึดตำแหน่งใช้ประโยชน์จากการตั้งค่าเหล่านี้เพื่อรันเวอร์ชันที่ต้องการของ Java

$ which java
/usr/bin/java

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

ในที่สุดเมื่อกำหนดค่า JAVA_HOME ในสคริปต์เรียกใช้งานสำหรับ Tomcat หรือ Maven คุณสามารถขอเข้าสู่ระบบการตั้งค่า:

export JAVA_HOME=`/usr/libexec/java_home`

คำตอบที่อื่นทราบว่าอาจติดตั้ง Java ที่หลายเส้นทาง - 

  • / ระบบ / Library / Java / JavaVirtualMachines
  • / Library / Java / JavaVirtualMachines
  • ~ / Library / Java / JavaVirtualMachines

- แต่สำหรับสิ่งที่อธิบายไว้ในปัจจุบันคำถามที่นี่ที่ JDK จาก Oracle บนภูเขาสิงโตเพียงหนึ่งเส้นทางที่มีแนวโน้ม


ขอบคุณสำหรับการแก้ไขโดยชุมชนควรมีลิงค์อื่นสำหรับการอ่านเบื้องหลังหรือไม่
เกรแฮมเพอร์ริน

2
การตั้งค่า Java ไม่ได้รับการสนับสนุนและจะถูกลบออกจริงเมื่อนำไปใช้ปรับปรุง Java 2012-006 นี่เป็นส่วนหนึ่งของ Apple ที่หลีกเลี่ยงการให้บริการและสนับสนุน Java
BryanH

@BryanH ขอบคุณ - คำตอบนี้ได้รับบางเดือนก่อน Java สำหรับ OS X 2012-006 - ดูคำถามที่เชื่อมโยง นอกจากนี้โปรดทราบว่าในขณะที่ Apple เคลื่อนห่างจากการแจกจ่าย JRE เราไม่ควรคิดว่า Apple จะหยุดให้การสนับสนุน Java
เกรแฮมเพอร์ริน

ใช่ขอบคุณ. ฉันเดาว่าฉันควรชี้แจงว่า "การสนับสนุน" หมายความว่า Apple ไม่ได้ให้บริการหรือตอบคำถามทางเทคนิคเกี่ยวกับ Java Virtual Machine สำหรับ OSX อีกต่อไป มันขึ้นอยู่กับ Oracle (หรือบุคคลที่สาม) เพื่อเขียนและบำรุงรักษา JVM ดังกล่าว
BryanH


3

พา ธ ที่ใช้สำหรับการติดตั้ง JDK

วิ่ง:

ls -l /Library/Java/JavaVirtualMachines

อาจใช้เส้นทางอื่น แต่สำหรับ JDK ปัจจุบันจาก Oracle ที่ติดตั้งไปยัง Mountain Lion คุณอาจพบ.jdkชุดข้อมูลที่เส้นทางนั้น

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