ฉันจะสลับระหว่างเวอร์ชัน Java ทั้งสองใน Mountain Lion ได้อย่างไรตอนนี้การตั้งค่า Java หายไป?


32

ฉันมี Java เวอร์ชันสองเวอร์ชันติดตั้งไว้กับ Mountain Lion:

การปรับปรุงจากแอปเปิ้ลเอาการตั้งค่า Java ในคำถามอื่นมีคนสงสัยเกี่ยวกับการลบโปรแกรมอรรถประโยชน์ที่

คำถามของฉันแตกต่าง:

  • ฉันจะสลับระหว่างสองเวอร์ชันในขณะที่การตั้งค่า Javaหายไปได้อย่างไร

ก่อนหน้านี้ฉันเคยใช้ยูทิลิตี้ของ Apple เพื่อตั้งค่า Java อย่างง่ายดาย ไม่มียูทิลิตี้นั้นมีวิธีที่ง่ายและรวดเร็ว?


มีเหตุผลบางอย่างที่คุณไม่สามารถติดตั้งJava Preferences ใหม่ได้หรือไม่?
chharvey

@ TestSubject528491 ฉันจะทำอย่างไร
Maverik

ฉันคิดว่าสิ่งนี้จะช่วยคุณฉันยังไม่ได้ลองในเครื่องของฉัน ดูขั้นตอนที่ 12 และ 13 จากลิงค์ต่อไปwikihow.com/Install-Oracle-Java-on-Ubuntu-Linux คุณสามารถทำซ้ำขั้นตอนเพื่อเปลี่ยนระหว่างจาวา .. หวังว่านี่จะช่วยคุณ ..
Dilip Rajkumar

@DilipRajkumar สำหรับลินุกซ์ ....
Maverik

ขออภัยฉันคิดผิดว่าคำสั่ง linux จะใช้งานบน Mac ได้ถ้าฉันโชคดีด้วยวิธีอื่นฉันไม่แนะนำ ..
Dilip Rajkumar

คำตอบ:


12

คุณอาจต้องการสองวิธี:

  • หนึ่งเพื่อเปลี่ยนเวอร์ชันสำหรับปลั๊กอินแอปเพล็ตเพียงอย่างเดียว
  • อีกวิธีหนึ่งในการสลับเวอร์ชันสำหรับส่วนอื่น ๆ ของ JRE โดยไม่ต้องสลับเวอร์ชันสำหรับปลั๊กอินแอปเพล็ต

กรณีการใช้งานล่าสุดของฉัน:

  • Java 8 สำหรับแอพที่ไม่ได้ใช้ปลั๊กอิน
  • Java 7 Update 9 สำหรับปลั๊กอินของแอปเพล็ต

หากต้องการสลับปลั๊กอินแอปเพล็ต แต่ไม่ใช่ส่วนอื่น ๆ ของ JRE / JDK จาก Java 8 เป็น Java 7 Update 9

  1. ออกจากเว็บเบราว์เซอร์และแอพอื่น ๆ ที่ใช้ Java หรือปลั๊กอิน Java applet
  2. ติดตั้ง JDK 8
  3. ตั้งสำรองปลั๊กอิน
  4. ติดตั้ง JRE 7 Update 9 หรือ JDK 7 Update 09

กัน: ย้ายแนะนำ

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

หากคุณวางแผนที่จะเปลี่ยนเป็นประจำคุณอาจต้องการสถานที่ชั่วคราวอื่น

ผล

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

ในเวลาเดียวกัน:

สกรีนช็อตของการตรวจสอบเวอร์ชัน Java ของ Oracle ใน Safari

หากต้องการสลับปลั๊กอินแอปเพล็ต แต่ไม่ใช่ส่วนอื่น ๆ ของ JRE / JDK จาก Java 7 Update 9 เป็น Java 6 Update 37

คำตอบภายใต้:


หากต้องการสลับ JRE แต่ไม่ใช่ปลั๊กอินแอปเพล็ตจาก Java 8 เป็น Java 7 Update 9

ติดตั้ง JDK 7 Update 09 จากนั้น JDK 8

  • ระบบปฏิบัติการและแอพจะใช้ค่าเริ่มต้นเป็นเวอร์ชั่นที่ยิ่งใหญ่ที่สุด

ออกจากแอปใด ๆ ที่ใช้ Java ไม่จำเป็นต้องออกจากเบราว์เซอร์

แยกjdk1.8ไดเรกทอรี…จาก

/Library/Java/JavaVirtualMachines

  • ระบบปฏิบัติการและแอพจะใช้ Java 7 Update 9

หากต้องการสลับ JRE แต่ไม่ใช่ปลั๊กอินแอปเพล็ตจาก Java 7 Update 9 เป็น Java 6 Update 37

ออกจากแอปใด ๆ ที่ใช้ Java ไม่จำเป็นต้องออกจากเบราว์เซอร์

แยกjdk1.7ไดเรกทอรี…จาก

/Library/Java/JavaVirtualMachines

  • ระบบปฏิบัติการและแอพจะใช้ Java 6 Update 37

ตัวอย่าง

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

โดยทั่วไป

สำหรับผู้ใช้ OS X สิ่งที่ Oracle จัดเตรียมไว้บางส่วนนั้นเริ่มเข้าใจผิด:

... และอื่น ๆ

ความง่าย

ในขณะที่ไม่มีการข้างต้นเป็นง่ายๆเป็นสลับกับการตั้งค่า Java app ที่ติดตั้งก่อนหน้านี้โดยแอปเปิ้ลที่วิธีการที่ค่อนข้างเรียบง่ายของการตั้งค่ากัน (ไม่จำเป็นต้องสำหรับการถอนการติดตั้งพิเศษ) เป็นที่ระลึกที่ต้องการสำหรับการติดตั้งการลากและวาง ... แสดงก่อนหน้านี้ในOpenJDK-OSX สร้างพื้นที่

บางคนอาจต้องการสร้างแอป แต่ฉันไม่ควรแนะนำให้ใช้ symlink - ใช้งานได้ แต่อาจไม่สอดคล้องกับวิธีการลากและวางในอนาคตสำหรับการติดตั้ง

หมายเหตุด้านข้าง

ในขณะที่เขียนรุ่นล่าสุดที่ได้รับการสนับสนุนซึ่งOracleทำให้การปรับปรุงพร้อมใช้งานต่อสาธารณชนคือ (สำหรับแพลตฟอร์มอื่นนอกเหนือจาก OS X) Java 6 อัพเดต 37 และ (สำหรับแพลตฟอร์มรวมถึง OS X) Java 7 Update 9

เนื่องจากจะมีการเผยแพร่ที่มากขึ้นโปรดตีความคำตอบนี้อีกครั้งตามนั้น

คำศัพท์เกี่ยวกับเวอร์ชัน Java ในคำตอบนี้สอดคล้องกับคำศัพท์ของศูนย์ช่วยเหลือของ Java


คุณอ้างถึง Java 8 จริงๆหรือเป็นข้อผิดพลาดหรือไม่? :-)
Maverik

1
จริง ๆ ;-) ... โปรดดูคำถามที่เชื่อมโยงคอลัมน์ทางขวา
Graham Perrin

4
นี่คือเคล็ดลับถ้าคุณใช้ JDK8 และต้องการสลับบ่อย เพียงแค่ chmod 0000 ไดเรกทอรี JDK8 เพื่อปิดsudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/และเปิดอีกsudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/ครั้ง
Brett Ryan

1
ข้อเสนอแนะล่าสุดโดย @BrettRyan ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน ฉันคิดว่ามันเป็นวิธีที่ง่ายที่สุดที่จะไป
Artem

1
ขอบคุณมาก @BrettRyan ที่ง่ายที่สุด !!! ฉันแนะนำผู้เขียนคำตอบเพื่อเพิ่มทางเลือกอื่น ฉันได้สร้าง. sh ในโฟลเดอร์โฮมของฉันด้วยคำสั่งและสร้าง Automator เชื่อมโยงกับคีย์ที่สลับจากที่หนึ่งไปอีกที่หนึ่ง ! ที่น่าตื่นตาตื่นใจ
Panthro

29

เปิดเทอร์มินัลใช้คำสั่งนี้:

/usr/libexec/java_home -v 1.6 

คุณสามารถเปลี่ยน 1.6 เป็น Java เวอร์ชันใดก็ได้ที่คุณต้องการใช้และคำสั่งจะแสดงตำแหน่งของรุ่น Java ที่มีอยู่ (เช่น: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)

จากนั้นคุณสามารถตั้งค่า JAVA_HOME ได้ตามปกติด้วยเอาต์พุตของคำสั่งก่อนหน้า เช่น:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

ดังนั้นเพื่อให้ง่ายขึ้น สิ่งนี้ควรใช้งานได้:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

อย่าลืมตรวจสอบเวอร์ชั่นด้วย:

java -version

หวังว่ามันจะช่วย


4
นี่เป็นคำตอบเดียวที่มีประโยชน์ที่สุดสำหรับปัญหานี้ที่ฉันสามารถหาได้จากทุกที่ทางออนไลน์ ขอขอบคุณ!
SearchTools-Avi

1
ตกลงนี่ควรเป็นคำตอบที่ยอมรับได้ ฉันมี JAR การอัพเดทที่บังคับสำหรับเซิร์ฟเวอร์แอปพลิเคชันที่ฉันติดตั้งและมันจะทำงานบน Java 6 โดยใช้สิ่งนี้ฉันสามารถสลับไปที่ Java 6, เรียกใช้ updater จากนั้นสลับกลับ ตอนนี้ฉันสามารถอัปเดตแอปพลิเคชันเซิร์ฟเวอร์ให้ทำงานบน Java 7
Adrian J. Moreno

4

ดูเหมือนคุณจะต้องทำด้วยตนเอง ของออราเคิลรัฐเอกสารว่ามีเพียงหนึ่ง JRE สามารถติดตั้งได้ในเวลา

หน้านี้สนับสนุนแอปเปิ้ลจะอธิบายวิธีการสลับระหว่างแอปเปิ้ล SE 6 JRE และออราเคิล SE 7 JRE สั้น ๆ เมื่อต้องการสลับจาก JRE ของ Oracle กลับไปที่ Apple ให้เริ่มแอป Terminal และพิมพ์ต่อไปนี้:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

มีคำแนะนำเพิ่มเติม (และดีกว่า) ในหน้าสนับสนุนเกี่ยวกับวิธีเปลี่ยน Web Start กลับเป็น JRE 6 และวิธีสลับทุกอย่างกลับไปเป็น Oracle JRE 7 (ติดตั้ง JRE ใหม่อีกครั้ง)

ไม่ง่ายเหมือนการใช้ยูทิลิตี้การตั้งค่า Java แต่ดีกว่าไม่มีอะไร


1
การใช้คำศัพท์ JRE ของออราเคิลเมื่อเร็ว ๆ นี้ทำให้ผู้ใช้ OS X เข้าใจผิด JRE เป็นมากกว่าปลั๊กอิน
เกรแฮมเพอร์ริน


-4

ทำไมคุณต้องติดตั้ง Java 2 เวอร์ชัน

Apple ไม่มีการติดตั้ง Java เป็นการอัพเดทเริ่มต้น (จาก Lion เป็นต้นไปฉันเชื่อว่า) วิธีที่ดีที่สุดในการตรวจสอบ / ติดตั้ง Java บน Mac มีดังนี้:

  1. เปิด Terminal พิมพ์ "java" (ไม่ต้องใส่เครื่องหมายอัญประกาศแน่นอน)
  2. หาก Java ไม่ปรากฏขึ้นคุณจะได้รับข้อความต่อไปนี้: "ไม่มี Java Runtime แสดงอยู่ขอติดตั้ง ... "
  3. Java เริ่มการติดตั้งตามปกติ (นี่คือการปฏิบัติการที่ผิดพลาดเริ่มต้นการติดตั้ง)
  4. หากคุณมี java เพื่อตรวจสอบเวอร์ชันในประเภทเทอร์มินัล "java-version"

หากคุณต้องการติดตั้ง java เวอร์ชันอื่น: แค่ข้ามไซต์ oracle และดาวน์โหลด jdk ที่ใหม่กว่า / เก่ากว่า


ฉันมี Java สองรุ่นแล้วตามที่ฉันเขียนไว้ในคำถาม ฉันถามวิธีเปลี่ยนค่าเริ่มต้น
Maverik

ฉันคิดว่ามันจะเปลี่ยนเป็นเวอร์ชั่นล่าสุด / เวอร์ชั่นล่าสุดที่ติดตั้งโดยอัตโนมัติ ในกรณีของฉันฉันติดตั้ง jdk 7 ครั้งล่าสุด นั่นคืออันที่ทำงานตามค่าเริ่มต้น
SashaZd

3
ฉันต้องการที่จะสามารถสลับระหว่างรุ่น
Maverik

มีความแตกต่างระหว่าง Apple JDK 6 และ Oracle JDK 7 ที่สามารถทำให้เกิดความไม่ลงรอยกันได้ทั้งในเวลาคอมไพล์และเวลารันไทม์
JohnnyO

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