หมายเหตุ: โซลูชั่นเหล่านี้ทำงานได้กับ Java รุ่นต่างๆรวมถึง Java 8 และ Java 13 ใหม่และสำหรับ Java รุ่นก่อนหน้าอื่น ๆ ที่มีการจัดการโดยผู้จัดการเวอร์ชันที่แสดงรายการไว้ ซึ่งรวมถึงทางเลือกของ JDK จาก OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal และอีกมากมาย ทำงานกับ Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 และ Java 13 ได้อย่างง่ายดาย!
คุณมีตัวเลือกไม่กี่วิธีในการติดตั้งรวมถึงจัดการการสลับ JDK การติดตั้งสามารถทำได้โดย Homebrew, SDKMAN , Jabbaหรือการติดตั้งด้วยตนเอง สลับสามารถทำได้โดยการJEnv , SDKMAN , แจ๊บบ้าJAVA_HOME
หรือด้วยตนเองโดยการตั้งค่า ทั้งหมดนี้อธิบายไว้ด้านล่าง
การติดตั้ง
ขั้นแรกให้ติดตั้ง Java โดยใช้วิธีใดก็ได้ที่คุณต้องการรวมถึง Homebrew, SDKMAN หรือติดตั้งไฟล์ tar.gz ด้วยตนเอง ข้อดีของการติดตั้งแบบแมนนวลคือตำแหน่งของ JDK สามารถวางในตำแหน่งมาตรฐานสำหรับ Mac OSX
ติดตั้งด้วย SDKMAN
นี่เป็นรูปแบบที่เรียบง่ายในการจัดการทั้งการติดตั้งและการสลับรุ่นโดยมีข้อแม้ที่ติดตั้ง JDK ลงในไดเรกทอรีที่ไม่ได้มาตรฐาน
< ดูด้านล่าง "การติดตั้งและเปลี่ยนเวอร์ชั่นด้วย SDKMAN" >
ติดตั้งโดยใช้ Jabba
นอกจากนี้ยังเป็นรุ่นที่เรียบง่ายในการติดตั้งและการสลับรุ่นที่ได้รับการจัดการโดยเครื่องมือเดียวกัน การติดตั้งนั้นทำกับไดเรกทอรีที่ไม่ได้มาตรฐาน
< ดูด้านล่าง "การติดตั้งและเปลี่ยนเวอร์ชั่นด้วย Jabba" >
ติดตั้งด้วยตนเองจากหน้าดาวน์โหลด OpenJDK:
ดาวน์โหลด OpenJDK สำหรับ Mac OSX จากhttp://jdk.java.net/ (ตัวอย่างเช่นJava 13 )
ยกเลิกการเก็บถาวร tar ของ OpenJDK และวางโฟลเดอร์ผลลัพธ์ (เช่นjdk-13.jdk
) ลงใน/Library/Java/JavaVirtualMachines/
โฟลเดอร์ของคุณเนื่องจากนี่เป็นตำแหน่งมาตรฐานและที่คาดหวังของการติดตั้ง JDK คุณสามารถติดตั้งได้ทุกที่ที่คุณต้องการ
ติดตั้งด้วย Homebrew
Java เวอร์ชันที่มีอยู่ใน Homebrew Cask ก่อนวันที่ 3 ตุลาคม 2018 เป็น Oracle JVM แน่นอน อย่างไรก็ตามตอนนี้มันได้รับการอัพเดตเป็น OpenJDK อย่าลืมอัปเดต Homebrew จากนั้นคุณจะเห็นเวอร์ชันล่าสุดพร้อมสำหรับการติดตั้ง
ติดตั้ง Homebrewหากคุณยังไม่ได้ติดตั้ง ตรวจสอบให้แน่ใจว่ามีการอัปเดต:
brew update
เพิ่มการแตะถังถ้าคุณยังไม่ได้ (หรือคุณไม่เห็น Java เวอร์ชันที่เก่ากว่าอีกต่อไปด้วยขั้นตอนที่ 3):
brew tap homebrew/cask-versions
และสำหรับเวอร์ชั่นAdoptOpenJDKให้เพิ่มแท็ปนั้น:
brew tap adoptopenjdk/openjdk
ถังเหล่านี้เปลี่ยนรุ่น Java บ่อยและอาจมีก๊อกอื่น ๆ ที่มีรุ่น Java เพิ่มเติม
ค้นหาเวอร์ชันที่ติดตั้งได้:
brew search java
หรือสำหรับ AdoptOpenJDK เวอร์ชั่น:
brew search jdk
ตรวจสอบรายละเอียดเกี่ยวกับรุ่นที่จะติดตั้ง:
brew cask info java
หรือสำหรับเวอร์ชั่น AdoptOpenJDK:
brew cask info adoptopenjdk
ติดตั้งรุ่นที่เฉพาะเจาะจงของ JDK เช่นjava11
, adoptopenjdk8
หรือเพียงแค่java
หรือadoptopenjdk
สำหรับปัจจุบัน ตัวอย่างเช่น:
brew cask install java
คุณสามารถใช้พา ธ แบบเต็มไปยังเวอร์ชันเก่าได้เช่นกัน:
brew cask install homebrew/cask-versions/java11
และสิ่งเหล่านี้จะถูกติดตั้ง/Library/Java/JavaVirtualMachines/
ซึ่งเป็นตำแหน่งดั้งเดิมที่คาดหวังไว้ใน Mac OSX
ตัวเลือกการติดตั้งอื่น ๆ :
รสชาติอื่น ๆ ของ openJDK คือ:
Azul ระบบ Java ซูลูได้รับการรับรองสร้างของ OpenJDK สามารถติดตั้งได้โดยทำตามคำแนะนำบนเว็บไซต์ของพวกเขา
Zulu®เป็นบิลด์ที่ได้รับการรับรองของ OpenJDK ซึ่งสอดคล้องกับมาตรฐาน Java SE อย่างสมบูรณ์ Zulu เป็นโอเพ่นซอร์ส 100% และสามารถดาวน์โหลดได้อย่างอิสระ ตอนนี้ผู้พัฒนา Java ผู้ดูแลระบบและผู้ใช้ปลายทางสามารถเพลิดเพลินกับประโยชน์เต็มที่ของ Java แบบโอเพ่นซอร์สที่มีความยืดหยุ่นในการปรับใช้และควบคุมเวลาในการอัปเกรด
Amazon Correto OpenJDK builds มีแพคเกจการติดตั้งที่ใช้งานง่ายสำหรับเวอร์ชัน 8 หรือเวอร์ชัน 11 (เวอร์ชั่นอื่นกำลังจะมา) และติดตั้งไปยัง/Library/Java/JavaVirtualMachines/
ไดเรกทอรีมาตรฐานบน Mac OSX
Amazon Corretto เป็นการแจกจ่ายแบบหลายแพลตฟอร์มที่ไม่มีต้นทุนและพร้อมสำหรับการผลิตของ Open Java Development Kit (OpenJDK) Corretto มาพร้อมกับการสนับสนุนระยะยาวซึ่งจะรวมถึงการปรับปรุงประสิทธิภาพและการแก้ไขด้านความปลอดภัย Amazon ดำเนินงาน Corretto ภายในกับบริการการผลิตหลายพันรายการและ Corretto ได้รับการรับรองว่าเข้ากันได้กับมาตรฐาน Java SE ด้วย Corretto คุณสามารถพัฒนาและรันแอปพลิเคชัน Java บนระบบปฏิบัติการที่ได้รับความนิยมรวมถึง Linux, Windows และ macOS
JDK ของฉันอยู่ที่ไหน!?!
หากต้องการค้นหาตำแหน่งของ Java JDK ที่ติดตั้งไว้ก่อนหน้านี้ที่ติดตั้งที่ตำแหน่งระบบเริ่มต้นให้ใช้:
/usr/libexec/java_home -V
การจับคู่ Java Virtual Machines (6):
13, x86_64: "OpenJDK 13" /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: "OpenJDK 12" / ไลบรารี / Java / JavaVirtualMachines / jdk-12 .jdk / สารบัญ / Home
11, x86_64: "Java SE 11" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" / ไลบรารี / Java / JavaVirtualMachines /jdk-10.0.2.jdk/Contents/Home
9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
1.8.0_144, x86_64: "Java SE 8" / ไลบรารี /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
นอกจากนี้คุณยังสามารถรายงานตำแหน่งของ Java เวอร์ชันที่-v
ระบุได้ ตัวอย่างเช่น Java 13:
/usr/libexec/java_home -v 13
/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
การทราบตำแหน่งของ JDK ที่ติดตั้งนั้นยังมีประโยชน์เมื่อใช้เครื่องมือเช่น JEnv หรือเพิ่มการติดตั้งในท้องถิ่นเป็น SDKMAN หรือเชื่อมโยงระบบ JDK ใน Jabba - และคุณจำเป็นต้องรู้ว่าจะหาได้จากที่ไหน
หากคุณต้องการค้นหา JDK ที่ติดตั้งโดยเครื่องมืออื่นให้ตรวจสอบที่ตั้งเหล่านี้:
- SDKMAN ติดตั้ง
~/.sdkman/candidates/java/
- Jabba ติดตั้งเพื่อ
~/.jabba/jdk
สลับรุ่นด้วยตนเอง
Java executable เป็น wrapper ที่จะใช้ JDK อะไรก็ตามที่มีการกำหนดค่าJAVA_HOME
ดังนั้นคุณสามารถเปลี่ยนมันเพื่อเปลี่ยน JDK ที่ใช้อยู่ได้เช่นกัน
ตัวอย่างเช่นหากคุณติดตั้งหรือเลิก JDK 13 /Library/Java/JavaVirtualMachines/jdk-13.jdk
หากเป็นหมายเลขเวอร์ชันสูงสุดควรเป็นค่าเริ่มต้นแล้วหากไม่ใช่คุณสามารถตั้งค่าได้ง่ายๆ:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
และตอนนี้สิ่งที่ Java ที่ปฏิบัติการอยู่ในพา ธ จะเห็นสิ่งนี้และใช้ JDK ที่ถูกต้อง
การใช้/usr/libexec/java_home
ยูทิลิตี้ตามที่อธิบายไว้ก่อนหน้านี้ช่วยให้คุณสร้างนามแฝงหรือเรียกใช้คำสั่งเพื่อเปลี่ยนเวอร์ชั่น Java โดยการระบุตำแหน่งของการติดตั้ง JDK ที่แตกต่างกัน ตัวอย่างเช่นการสร้างสมนามเชลล์ในของคุณ.profile
หรือ.bash_profile
เพื่อเปลี่ยนJAVA_HOME
สำหรับคุณ:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
# default to Java 13
java13
จากนั้นหากต้องการเปลี่ยนเวอร์ชันให้ใช้นามแฝง
java8
java -version
รุ่น java "1.8.0_144"
แน่นอนว่าการตั้งค่าJAVA_HOME
ทำงานด้วยตนเองเช่นกัน!
การสลับรุ่นด้วย JEnv
JEnvคาดว่า Java JDK จะมีอยู่แล้วบนเครื่องและสามารถอยู่ในตำแหน่งใดก็ได้ /Library/Java/JavaVirtualMachines/
โดยปกติแล้วคุณจะพบว่าการติดตั้งใน Java JDK ของ JEnv อนุญาตให้ตั้งค่าเวอร์ชันสากลของ Java หนึ่งรายการสำหรับเชลล์ปัจจุบันและเวอร์ชันโลคัลไดเร็กทอรีต่อไดเร็กทอรีซึ่งสะดวกเมื่อบางโปรเจ็กต์ต้องการเวอร์ชันที่แตกต่างจากที่อื่น
ติดตั้ง JEnv หากคุณยังไม่มีคำแนะนำในเว็บไซต์http://www.jenv.be/สำหรับการติดตั้งด้วยตนเองหรือใช้ Homebrew
เพิ่ม Java เวอร์ชันใด ๆ ลงใน JEnv ( ปรับไดเรกทอรีถ้าคุณวางไว้ที่อื่น ):
jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
ตั้งค่าเวอร์ชันโกลบอลของคุณโดยใช้คำสั่งนี้:
jenv global 13
นอกจากนี้คุณยังสามารถเพิ่มเวอร์ชันอื่น ๆ ที่มีอยู่โดยใช้jenv add
ในลักษณะที่คล้ายกันและรายการที่มีอยู่ ตัวอย่างเช่น Java 8:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
jenv versions
ดูเอกสาร JEnvสำหรับคำสั่งเพิ่มเติม ตอนนี้คุณสามารถสลับระหว่างเวอร์ชัน Java (Oracle, OpenJDK, อื่น ๆ ) ได้ตลอดเวลาทั้งระบบสำหรับเชลล์หรือต่อโลคัลไดเร็กทอรี
เพื่อช่วยจัดการJAVA_HOME
ในขณะที่ใช้ JEnv คุณสามารถเพิ่มปลั๊กอินส่งออกเพื่อทำสิ่งนี้ให้คุณ
$ jenv enable-plugin export
You may restart your session to activate jenv export plugin echo export plugin activated
ปลั๊กอินการส่งออกอาจไม่ปรับ JAVA_HOME
หากตั้งค่าไว้แล้วดังนั้นคุณอาจต้องล้างตัวแปรนี้ในโปรไฟล์ของคุณเพื่อให้สามารถจัดการได้โดย JEnv
คุณยังสามารถใช้jenv exec <command> <parms...>
เพื่อเรียกใช้คำสั่งเดียวด้วยJAVA_HOME
และPATH
ตั้งค่าอย่างถูกต้องสำหรับคำสั่งนั้นซึ่งอาจรวมถึงการเปิดเปลือกอื่น
การติดตั้งและเปลี่ยนเวอร์ชั่นด้วย SDKMAN
SDKMANนั้นแตกต่างกันเล็กน้อยและรองรับทั้งการติดตั้งและการสลับ SDKMAN ยังสถานที่ที่ติดตั้ง JDK ~/.sdkman/candidates/java
เข้าไปในต้นไม้ไดเรกทอรีของตัวเองซึ่งเป็นปกติ SDKMAN อนุญาตให้ตั้งค่าเวอร์ชันเริ่มต้นส่วนกลางและรุ่นเฉพาะสำหรับเชลล์ปัจจุบัน
ติดตั้ง SDKMAN จากhttps://sdkman.io/install
แสดงรายการเวอร์ชัน Java ที่มีอยู่เพื่อให้แน่ใจว่าคุณทราบรหัสเวอร์ชัน
sdk list java
ติดตั้งหนึ่งในเวอร์ชันเหล่านั้นตัวอย่างเช่น Java 13:
sdk install java 13.0.0-open
กำหนดเป็น 13 รุ่นเริ่มต้น:
sdk default java 13.0.0-open
หรือเปลี่ยนเป็น 13 สำหรับเซสชัน:
sdk use java 13.0.0-open
เมื่อคุณแสดงรายการเวอร์ชันที่พร้อมใช้งานสำหรับการติดตั้งโดยใช้คำสั่ง list คุณจะเห็นความหลากหลายของ Java:
sdk list java
และติดตั้งเวอร์ชันเพิ่มเติมเช่น JDK 8:
sdk install java 8.0.181-oracle
SDKMAN สามารถทำงานกับเวอร์ชันที่ติดตั้งไว้ก่อนหน้านี้ เพียงทำการติดตั้งในเครื่องที่มีป้ายกำกับเวอร์ชันของคุณเองและที่ตั้งของ JDK:
sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
และใช้มันอย่างอิสระ:
sdk use java my-local-13
ข้อมูลเพิ่มเติมมีอยู่ในคู่มือการใช้งาน SDKMANพร้อมกับSDK อื่น ๆสามารถติดตั้งและจัดการได้
SDKMAN จะจัดการPATH
และJAVA_HOME
ให้คุณโดยอัตโนมัติเมื่อคุณเปลี่ยนเวอร์ชัน
การติดตั้งและเปลี่ยนเวอร์ชั่นด้วย Jabba
Jabbaยังจัดการทั้งการติดตั้งและการสลับ Jabba ยังวาง JDK ที่ติดตั้งไว้ในแผนผังไดเร็กทอรีของตัวเองซึ่งโดยทั่วไปแล้ว~/.jabba/jdk
เข้าไปในต้นไม้ไดเรกทอรีของตัวเองซึ่งเป็นปกติ
ติดตั้ง Jabba โดยทำตามคำแนะนำในหน้าแรก
รายการของ JDK ที่มีอยู่
jabba ls-remote
ติดตั้ง Java JDK 12
jabba install openjdk@1.12.0
ใช้มัน:
jabba use openjdk@1.12.0
คุณสามารถนามแฝงชื่อรุ่นเชื่อมโยงไปยัง JDK ที่มีอยู่แล้วและหาส่วนผสมของ JDK ที่น่าสนใจเช่น GraalVM, Adopt JDK, IBM JDK และอื่น ๆ คู่มือการใช้งานที่สมบูรณ์มีอยู่ในหน้าแรกเช่นกัน
Jabba จะจัดการของคุณPATH
และJAVA_HOME
ให้คุณโดยอัตโนมัติเมื่อคุณเปลี่ยนเวอร์ชัน