วิธีการติดตั้ง JDK เฉพาะบน Mac OS X


197

ฉันต้องการติดตั้ง JDK เฉพาะ (ตัวอย่างล่าสุด) สำหรับวันนี้ผมไปที่หน้าแรกของการดาวน์โหลด JDK: http://java.sun.com/javase/downloads/index.jsp ฉันค้นหารุ่น Mac แต่ฉันแปลกใจเล็กน้อยที่เห็นเฉพาะรุ่นที่สามารถดาวน์โหลดได้สำหรับ Linux, Windows และSolaris ...

นี่คือข้อความสำหรับ Mac:

"Apple Computer ให้ Java เวอร์ชันของตนเองใช้คุณสมบัติ Software Update (มีอยู่ในเมนู Apple) เพื่อตรวจสอบว่าคุณมี Java เวอร์ชันล่าสุดสำหรับ Mac ของคุณ"

ตกลง แต่ ... เมื่อฉันอัพเดท Java ด้วย Mac ฉันมีJREและไม่ใช่ JDK ...

ฉันไม่เข้าใจว่าเพราะเหตุใดจึงไม่มีรุ่น JDK ที่สามารถดาวน์โหลด / ติดตั้งได้ง่าย (เช่น jar เพื่อคลายซิป) สำหรับ Mac ...


70
คำถามที่มีชื่อเสียง ... คุณควรยอมรับคำตอบ ;)
แกรี่

ตำรวจให้ทางออกสำหรับเรื่องนี้
Daniel

10
โปรดทราบว่าขณะนี้ Oracle 7 ได้รับการจัดหาโดย Oracle ซึ่งเป็นคำตอบส่วนใหญ่และการสืบค้นอ้างถึงสถานะก่อนหน้านี้
mmmmmm

คำตอบ:


44

ในความคิดเห็นภายใต้คำตอบของ @ Thilo @mobibob ถามวิธีตั้งค่า JAVA_HOME ใน. bash_profile ของคุณบน Mac ตอบ:

export JAVA_HOME=`/usr/libexec/java_home` 

สิ่งนี้จะกำหนดให้ JAVA_HOME ตำแหน่งของ JDK แรกที่แสดงรายการในแท็บ "ทั่วไป" ของยูทิลิตี้ "Java Preferences"

ดูคำถามที่ถามบ่อยด้านเทคนิคของ Apple 1170: https://developer.apple.com/library/content/qa/qa1170/_index.html

แก้ไข:

หากคุณต้องการให้วงเล็บเป็น backticks สำหรับการทดแทนคำสั่งสิ่งนี้ก็ใช้ได้เช่นกัน:

export JAVA_HOME=$(/usr/libexec/java_home)

20

ตามที่ข้อความบอกไว้คุณต้องไปที่ Apple ไม่ใช่ Sun สำหรับ Java บน Mac เท่าที่ฉันรู้ Apple JDK 6 ได้รับการติดตั้งเป็นค่าเริ่มต้นบน Mac OS X 10.6 (Snow Leopard) บางทีคุณอาจต้องติดตั้งเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จาก DVD การติดตั้ง Mac OS X ของคุณ (เครื่องมือ dev นั้นเป็นการติดตั้งเสริมจาก OS DVD)

ดู: http://developer.apple.com/java/

หมายเหตุคำตอบนี้ตั้งแต่วันที่ 16 ต.ค. 2552 ล้าสมัยแล้ว คุณสามารถรับ JDK สำหรับ Mac OS X จากหน้าดาวน์โหลดปกติของJDKบนเว็บไซต์ของ Oracle ตอนนี้


10

สำหรับคนที่ใช้ LION OS X 10.7.X

พวกเขาอัปโหลด Java SE 6 เวอร์ชัน 1.6.0_26 ที่นี่แล้ว

http://support.apple.com/kb/dl1421


3
ก่อนหน้านี้พวกเขาแทนที่ด้วย _29 ซึ่งมีข้อผิดพลาด MS SQL ยิ่งใหญ่ :(
Carighan

10

ฉันซื้อ MacBook Pro เมื่อวานนี้ ( Mac OS X v10.8 (Mountain Lion)) และไม่มีการติดตั้ง JDK เป็นค่าเริ่มต้น ...

เช่นเดียวกับ javac ฉันยังพบว่ามันไม่มีแพ็คเกจเช่นติดตั้งSVN ปรากฎว่าคุณสามารถรับทุกสิ่งได้จากหน้านักพัฒนา Apple (คุณจะต้องลงทะเบียนกับ AppleID ของคุณ) SVN เป็นส่วนหนึ่งของแพ็คเกจ "เครื่องมือบรรทัดคำสั่ง"

ป้อนคำอธิบายภาพที่นี่

นี่คือสิ่งที่เกิดขึ้นบน MacBook สด:

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่

หวังว่านี่จะช่วยมือใหม่คนอื่น ๆ เช่นฉัน;)


5
+1 สถานการณ์เปลี่ยนไปเล็กน้อยด้วย Mountain Lion โปรดทราบว่าในขณะที่ Apple มีการติดตั้ง Java เพิ่มเติม แต่เป็น Java 6 ที่เก่ากว่าเท่านั้นเวอร์ชันปัจจุบันของ Java สำหรับ OS X นั้นขณะนี้มีการเผยแพร่โดย Oracle เอง
Thilo


4

คำอธิบายก็คือว่า JDK เป็นบิตที่เฉพาะเจาะจงและไม่ได้มี tools.jar สำหรับการพัฒนาของฉันฉันต้องการห้องสมุดนี้และ JDK ของ Mac ไม่ได้จัดเตรียมไว้ให้:

(Cf. http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html )

tools.jar ไม่มีอยู่ คลาสที่มักจะอยู่ที่นี่จะรวมอยู่ในคลาส สคริปต์ที่ต้องพึ่งพาการมีอยู่ของ tools.jar จำเป็นต้องถูกเขียนใหม่ตามลำดับ

มันแย่มาก!


1
Ahhhhhhh !!! ตามที่คุณค้นพบtools.jarแล้วรวมอยู่ในรันไทม์สำหรับ Mac OS X ดังนั้นการค้นหาtools.jarไม่ใช่วิธีที่เหมาะสมบน Mac ที่จะรู้ว่ามันเป็น JDK หรือ JRE :)
Pascal Thivent

ขอบคุณสำหรับคำตอบของคุณคุณพูดถูก ความต้องการของผมคือการได้รับ lib tools.jar สำหรับโครงการที่เฉพาะเจาะจงและสำหรับฉันมันเป็นวิธีการที่จะรับรู้ jdk หนึ่ง)
ajeanson

4

วิธีที่ง่ายที่สุดคือการใช้Homebrew ติดตั้ง Homebrew แล้ว:

brew tap caskroom/versions
brew cask install java7

คุณสามารถแสดงรายการเวอร์ชันที่มีทั้งหมดโดยใช้คำสั่งต่อไปนี้: brew cask search java


3

การคอมไพล์ด้วย -source 1.5-target 1.5 (ในสภาพแวดล้อม JDK 6) จะให้เกียรติเฉพาะองค์ประกอบภาษาที่อยู่ใน 1.5 และก่อนหน้า ยิ่งใหญ่ แต่ไม่มีการเปลี่ยนแปลงภาษาใน 6 อย่างไรก็ตาม ปัญหาเกี่ยวกับวิธีการนี้ (สำหรับ Mac ที่มี 1.6) คือการใช้คลาสที่มาหลังจาก AFTER 1.5 จะยังคงคอมไพล์เพราะมันมีอยู่ใน rt.jar ดังนั้นหนึ่งสามารถทำงานใน 1.5 env และได้รับการเรียนไม่พบข้อยกเว้นโดยไม่มีการเตือนล่วงหน้าเมื่อรวบรวม ฉันพบสิ่งนี้ด้วยวิธีที่ยากกับ javax.swing.event.RowSorterEvent / Listener ทั้งคู่ป้อน "ตั้งแต่ 1.6" แต่ไม่ได้ติดตั้ง -source 1.5



3

ในฐานะของMac OS X v10.6 (Snow Leopard) คุณสามารถเรียกใช้ Java 6 ในโหมด 32 บิตบนMac ที่ติดตั้งโปรเซสเซอร์32 บิตหรือ 64 บิตIntel

หากคุณไม่สามารถอัพเกรดเป็น Snow Leopard ได้Soy Latteเป็น Java 6 รุ่นที่รวบรวมไว้ล่วงหน้าสำหรับ Intel 32 บิต


3

มีปัญหาที่ยุ่งยากมากมายเกี่ยวกับการมี Java หลายเวอร์ชัน (Java 6 และ Oracle JDK 7 ของ Apple เองหรือแม้กระทั่ง 8) บนระบบ Mac OS X และใช้เวอร์ชันต่างกันสำหรับแอปพลิเคชั่นที่แตกต่างกัน ผมใช้เวลาเขียนขึ้นจากประสบการณ์ของผมในประสบการณ์ของผมในการติดตั้งและการกำหนดค่ารุ่นต่างๆของ JDK บน Mac OS X 10.9.2


1

ฉันคิดว่าคำถาม Stack Overflow อื่นนี้สามารถช่วย:

วิธีรับ JDK 1.5 บน Mac OS X

โดยทั่วไปแล้วจะบอกว่าถ้าคุณต้องการคอมไพล์หรือรันแอปพลิเคชัน Java ด้วย JDK เวอร์ชั่นเก่า (เช่น 1.4 หรือ 1.5) คุณสามารถทำได้โดยใช้ 1.6 เพราะมันเข้ากันได้ย้อนหลัง ในการทำเช่นนั้นคุณจะต้องเพิ่มพารามิเตอร์-source 1.5และ / หรือ-target 1.5ในตัวเลือก javac หรือใน IDE ของคุณ


1

JDK เป็น Java Development Kit (ใช้เพื่อพัฒนาซอฟต์แวร์ Java)

JREเป็น Java Runtime Environment (ใช้เพื่อเรียกใช้ไฟล์. jar ใด ๆ 'ซอฟต์แวร์ Java')

JDK มี JRE อยู่ข้างใน

บน Windows เมื่อคุณอัพเดต Java จะอัพเดต JRE โดยอัตโนมัติ

บน Mac คุณไม่มี JRE ที่แยกคุณมี แต่อยู่ใน JDK ดังนั้นเมื่อคุณอัปเดต Java มันจะอัปเดต JRE ของคุณซึ่งอยู่ภายใน JDK ของคุณ มันไม่ได้ติดตั้ง JDK สำหรับคุณ คุณต้องรับมันจากที่อื่น


1
ฉันคิดว่าคุณหมายถึง JDK แทน IDK ฉันพยายามแก้ไข แต่ Stack Overflow กล่าวว่าการแก้ไขต้องมีความยาวเกิน 6 อักขระ เพียงกล่าวถึงเพื่อหลีกเลี่ยงความสับสน
webworm


1

เนื่องจากคำตอบส่วนใหญ่ล้าสมัยต่อไปนี้เป็นสิ่งที่ทำงานได้เมื่อปลายปี 2561 ภายใต้สมมติฐานที่ว่า

  1. คุณต้องการติดตั้ง OpenGL เวอร์ชัน GPL [0]
  2. คุณไม่ต้องการติดตั้ง Homebrew

ในกรณีนั้นให้คว้ารุ่นที่ต้องการจากรุ่น OpenJDK ที่มีอยู่มากมายที่สามารถใช้งานได้อย่างอิสระเช่น:

บางส่วนของเหล่านี้รวมถึงตัวติดตั้ง แต่ถ้าไม่คุณสามารถทำได้ สมมติว่าที่นี่รุ่น 11.0.1 สำหรับ Mac ในเปลือกที่คุณชื่นชอบเรียกใช้:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] โปรดทราบว่า Oracle JDK ที่มีตราสินค้านั้นมีข้อ จำกัด ด้านลิขสิทธิ์ที่สำคัญซึ่งอนุญาตให้คุณใช้เพื่อการทดสอบโดยทั่วไปเท่านั้นไม่ใช่สำหรับการผลิต หากคุณไม่ได้มีข้อตกลงการสนับสนุนกับ Oracle แล้วดูเหมือนว่ามีความเสี่ยงที่จะให้ผมใช้ JDK ของพวกเขาโดยเฉพาะอย่างยิ่งนับตั้งแต่ความแตกต่างเพื่อ OpenJDK น้อย

แก้ไข:เพิ่มตัวเลือกเพิ่มเติม


1
ฉันขอแนะนำให้คุณชี้ให้เห็นการดาวน์โหลดจากAdoptOpenJDK.netจากนั้นทำตามคำแนะนำของคุณเพื่อหลีกเลี่ยงปัญหาทางกฎหมายและการสนับสนุนสำหรับการวางจำหน่ายของ Oracle
Basil Bourque

0

ตามกฎแล้วคุณไม่สามารถติดตั้ง Java เวอร์ชันอื่นบน Mac ได้นอกเหนือจากที่ Apple เตรียมไว้ผ่านการอัปเดตซอฟต์แวร์ หากคุณต้องการ Java 6 คุณต้องมีคอมพิวเตอร์ Intel 64 บิต คุณควรมี Java 5 และ 1.4 และอาจติดตั้ง 1.3 อยู่เสมอหากคุณมี OS X 10.4 เป็นอย่างน้อย

หากคุณมีจาระบีที่ข้อศอกมากและยินดีที่จะทำงานกับซอฟต์แวร์เบต้าคุณสามารถติดตั้ง OpenJDK ภายใต้ OS X แต่ฉันไม่คิดว่าคุณต้องการไปที่นั่น


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