วิธีการติดตั้ง Java 8 บน Mac


992

ฉันต้องการเขียนโปรแกรมด้วย JavaFX ล่าสุดซึ่งต้องการ Java 8 ฉันใช้ IntelliJ 13 CE และ Mac OS X 9 Mavericks ฉันใช้โปรแกรมติดตั้ง Java 8 ของ Oracle และดูเหมือนว่าไฟล์จะจบลง

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

แต่รุ่นก่อนหน้าอยู่ที่

/System/Library/Java/JavaFrameworks/jdk1.6....

ไม่แน่ใจว่าทำไมตัวติดตั้งล่าสุดวางไว้/Libraryแทนที่/System/Library(หรือความแตกต่างคืออะไร) แต่/usr/libexec/java_homeไม่พบ 1.8 ดังนั้นโพสต์ทั้งหมดที่ฉันพบในการตั้งค่าจาวาเวอร์ชันปัจจุบันของคุณไม่ทำงาน ฉันได้ลองเพิ่มลิงก์สัญลักษณ์เพื่อให้ดูเหมือน 1.8 อยู่ใน/System/Library...เส้นทาง แต่ไม่ช่วย /usr/libexec/java_home -Vยังคงแสดงรายการ Java 1.6 เก่าเท่านั้น

แดกดันแผงควบคุม "Java" ภายใต้ System Preferences จะแสดงเฉพาะ Java 1.8!

เหตุใดโปรแกรมติดตั้งของ Oracle จึงไม่ติดตั้งในตำแหน่งที่เหมาะสม และฉันจะแก้ไขปัญหานี้ได้อย่างไร


8
มัน "จริงๆไป" ซึ่งมันก็จบลง /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/- ก่อนหน้านี้เป็นเวอร์ชัน Java ที่ Apple ให้มาและ Apple ไม่ได้ให้ Java อีกต่อไปตำแหน่งการติดตั้งก็เปลี่ยนไป
awksp

คำตอบ:


1886

Oracle มีเร็กคอร์ดที่ไม่ดีสำหรับการติดตั้งและกำหนดค่า Java อย่างง่ายดาย แต่เมื่อใช้Homebrewสามารถติดตั้ง OpenJDK (Java 14) ล่าสุดได้ด้วย:

brew cask install java

สำหรับกรณีการใช้งานหลายกรณีขึ้นอยู่กับรุ่นเก่ากว่า (โดยทั่วไปคือ Java 8) โครงการAdoptOpenJDKทำให้เป็นไปได้ด้วยขั้นตอนพิเศษ

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

ผู้ใช้ Homebrew ที่มีอยู่อาจพบError: Cask adoptopenjdk8 exists in multiple tapsเนื่องจากการแก้ไขปัญหาก่อนหน้าด้วยคำแนะนำที่แตกต่างกัน สิ่งนี้สามารถแก้ไขได้โดยการระบุสถานที่ด้วยbrew cask install adoptopenjdk/openjdk/adoptopenjdk8นี้สามารถแก้ไขได้โดยการระบุอย่างเต็มที่กับสถานที่


89
ณ เดือนธันวาคม 2558 ตอนนี้ไม่จำเป็นต้องติดตั้งถังด้วยตนเองเนื่องจากตอนนี้เป็นส่วนหนึ่งของการติดตั้งโฮมบรูว์ ดังนั้นหลังจากการปรับปรุง homebrew ผ่านคุณจะถูกตั้งค่าการใช้งานbrew update brew cask
davetw12

63
ขอบคุณมันน่าทึ่งที่กระบวนการติดตั้ง Java ที่น่ากลัวโดยใช้ลิงก์ / เอกสาร "เป็นทางการ" เป็นอย่างไร
enderland

15
@tandrewnichols ฉันวิ่งbrew cask install javaบนของ El Capitan Mac jdk-8u112-macosx-x64.dmgและมันดาวน์โหลด
Calrion

44
Error: Cask 'java8' is unavailable: No Cask with this name exists.
Elderry

87
วิธีแก้ปัญหาสำหรับตอนนี้คือการbrew tap homebrew/cask-versionsใช้และการใช้งานbrew cask install homebrew/cask-versions/adoptopenjdk8
Sean Breckenridge

736

หมายเหตุ: Oracle Java 8/9/10 ไม่สามารถดาวน์โหลดสาธารณะได้อีกต่อไป (การเปลี่ยนแปลงใบอนุญาต)

ขั้นแรกให้ติดตั้งและอัปเดตBrewจาก Terminal:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update

ใหม่ ณ เดือนมิถุนายน 2562

ในการติดตั้ง JDK จาก AdoptOpenJDK:

brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11

OLD

Java 8:

brew cask install java8

Java ล่าสุด:

brew cask install java

3
น่าสนใจที่จะทราบว่าสิ่งนี้ไม่ได้ผลสำหรับฉันใน Mavericks ดังนั้นจึงไม่ตอบคำถามของ OP แต่มันใช้งานได้กับกัปตันดังนั้นมันจึงมีประโยชน์เป็นคำตอบ ..
Tommy

3
ฉันติดตั้ง homebrew fresh บนเครื่อง OS X El Capitan ใหม่และไม่จำเป็นต้องเรียกใช้brew tapคำสั่งในคำตอบข้างต้น คำสั่งแรกและคำสั่งที่สามก็เพียงพอแล้ว
Adil Hussain

14
Error: Cask 'java8' is unavailable: No Cask with this name exists.
user924

4
$ brew cask install adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: caskroom/versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8. ฉันต้องใช้brew cask install adoptopenjdk/openjdk/adoptopenjdk8
roottraveller

5
brew tap homebrew/cask-versionsและbrew cask install adoptopenjdk8ทำงานให้ฉันใน Hi Sierra 10.13.6
xjlin0

135

Java8 ไม่สามารถใช้งานบน homebrew ได้อีกต่อไป brew install java8จะไม่ทำงาน

ให้ใช้:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

ดูการกระทำนี้สำหรับรายละเอียดทางเทคนิค

โปรดทราบว่าคุณอาจพบปัญหา Cask adoptopenjdk8 exists in multiple tapsโปรดทราบเช่นกันคุณอาจจะเห็นปัญหารอบนี่เป็นปัญหาที่ทราบกันดีขณะนี้กำลังดำเนินการอยู่ซึ่งคุณสามารถดูได้ที่นี่:

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

สำหรับผู้ที่ไม่ต้องการรายละเอียดนี่คือบทสรุป:

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup

2
มีความแตกต่างในการใช้งานAdoptOpenJDK/openjdkแทนการใช้หรือไม่homebrew/cask-versions/adoptopenjdk8
Sean Breckenridge

ฉันได้รับสิ่งต่อไปนี้เมื่อฉันลองคำตอบของคุณ: Cask adopttopenjdk8 มีอยู่ในหลาย ๆ ก๊อก: caskroom / version / adopttopenjdk8 adoptopenjdk / openjdk / opentopenjdk8
Koray Tugay

@KorayTugay ฉันได้อัปเดตคำตอบแล้วนี่น่าจะแก้ปัญหาของคุณได้!
Dave Kerr

1
@SeanBreckenridge - ทีม HomeBrew กำลังทำงานอยู่ในขณะนี้ดูเหมือนว่าจะใช้ AdoptOpenJDK แต่ยังมีความไม่แน่นอนอยู่ให้ดูที่github.com/AdoptOpenJDK/homebrew-openjdk/issues/106สำหรับรายละเอียด!
Dave Kerr

1
brew cask install homebrew/cask-versions/adoptopenjdk8ทำงานให้ฉัน
protoEvangelion

123

ฉันเพิ่งทำสิ่งนี้บน MBP ของฉันและต้องใช้

$ brew tap caskroom/versions
$ brew cask install java8

เพื่อให้สามารถติดตั้ง java8 ได้


9
มันช่วยฉันในการติดตั้งจาวาเวอร์ชันเฉพาะ ตอนนี้เมื่อ Java 9 ไม่ทำงานการเรียกใช้ "brew cask install java" ติดตั้ง java 9 "brew cask install java8" ไม่ทำงานสำหรับฉันจนกว่าฉันจะเรียกใช้ "brew tap caskroom / version"
ขัดจังหวะ

6
ใช่brew tap caskroom/versionsจำเป็นต้องมีก่อนการติดตั้ง java8
hendrix

11
หรือเพียงbrew install homebrew/cask-versions/java8เพื่อชนะ!
นารูโตะ Sempai

4
ไม่สามารถติดตั้ง Java8 โดยใช้ Brew ได้อีกต่อไปเนื่องจากการเปลี่ยนแปลงไลเซนส์ของ Oracle Java8 ไม่สามารถดาวน์โหลดสาธารณะได้อีกต่อไป
Marcelo Xavier

2
ดูstackoverflow.com/a/55775566/9306378หากคุณยังต้องการใช้ java8 โปรดทราบว่าสิ่งนี้ใช้ OpenJDK แม้ว่า
Polpetta

62

ตัวเลือกที่ฉันชอบสำหรับการใช้งานแอพพลิเคชั่นบนเครื่องคอมพิวเตอร์ของฉันคือการใช้ Docker คุณสามารถเรียกใช้แอปพลิเคชันของคุณภายในคอนเทนเนอร์ JDK อย่างเป็นทางการซึ่งหมายความว่าคุณไม่ต้องกังวลเกี่ยวกับการตั้งค่าทุกอย่างบนเครื่องท้องถิ่นของคุณ (หรือกังวลเกี่ยวกับการเรียกใช้ JDK หลายเวอร์ชันสำหรับแอพที่แตกต่างกัน ฯลฯ )

แม้ว่าสิ่งนี้อาจไม่ช่วยคุณในการติดตั้งในปัจจุบัน แต่มันเป็นวิธีการแก้ปัญหาซึ่งหมายความว่าคุณสามารถทำตามขั้นตอนที่เกี่ยวข้องกับการพยายามทำให้ Java ทำงานได้อย่างถูกต้องบนเครื่อง dev ของคุณ!

ประโยชน์คือ:

  1. ไม่จำเป็นต้องตั้งค่า Java เวอร์ชันใด ๆ บนเครื่องของคุณ (คุณเพียงแค่เรียกใช้ Java ภายในคอนเทนเนอร์ที่คุณดึงมาจาก Docker Hub)
  2. ง่ายมากที่จะเปลี่ยนเป็น Java เวอร์ชันต่างๆโดยเพียงแค่เปลี่ยนแท็กบนคอนเทนเนอร์
  3. การอ้างอิงโครงการจะถูกติดตั้งภายในคอนเทนเนอร์ - ดังนั้นหากคุณทำให้การกำหนดค่าของคุณยุ่งเหยิงคุณสามารถทำตู้คอนเทนเนอร์และเริ่มต้นอีกครั้ง

ตัวอย่างง่าย ๆ :

สร้างDockerfile:

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • ที่นี่เรากำลังระบุจาวาคอนเทนเนอร์ที่รันเวอร์ชัน 8 ของ SDK ( java:8- เพื่อใช้ Java 7 คุณสามารถระบุ:java:7 )
  • เรากำลังทำแผนที่ไดเรกทอรีท้องถิ่นกับไดเรกทอรี: /usr/src/myappภายในภาชนะ

สร้างdocker-compose.ymlไฟล์:

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

ตอนนี้สมมติว่าเรามีไฟล์ Java นี้:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

ดังนั้นเราจึงมีโครงสร้างไฟล์ดังต่อไปนี้:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

คุณสามารถทำสิ่งต่างๆของ Java เช่น:

รวบรวม:

docker-compose run --rm java javac HelloWorld.java 
  • คุณควรทราบว่า HelloWorld.class แสดงในไดเรกทอรีปัจจุบันของคุณ (นี่เป็นสาเหตุที่เราได้แมปไดเรกทอรีปัจจุบันไปยังตำแหน่งภายในคอนเทนเนอร์ที่มีรหัสของเราอยู่

วิ่ง:

docker-compose run --rm java java HelloWorld 
  • หมายเหตุ: ครั้งแรกที่คุณเรียกใช้มันจะดึงภาพ ฯลฯ ซึ่งจะใช้เวลาสักครู่ - มันจะเกิดขึ้นในครั้งแรกเท่านั้น
  • docker-compose run - รันคำสั่งจากภายในคอนเทนเนอร์
  • -rm บอกนักเทียบท่าให้ลบคอนเทนเนอร์เมื่อคำสั่งรันเสร็จแล้ว
  • java เป็นชื่อของบริการ / คอนเทนเนอร์ (จากไฟล์นักเทียบท่าของเรา) ซึ่งคำสั่งนี้จะทำงาน
  • ส่วนที่เหลือของบรรทัดคือคำสั่งให้ทำงานภายในคอนเทนเนอร์

นี่เป็นวิธีที่ยอดเยี่ยมในการจัดการกับการใช้งานจาวารุ่นต่าง ๆ สำหรับแอพที่ต่างกัน

นี่คือตัวอย่างที่ซับซ้อนกว่าเล็กน้อยซึ่งมีMaven และแอพ Spring ที่เรียบง่าย

Disclaimer:


2
ตัวอย่างที่ดีในการใช้ Docker ไม่แน่ใจว่าทำไมคุณถึงต้องลงคะแนนมาก่อน
แอนดรู

28
ฉันคิดว่า downvote เพราะนี่ไม่ได้ตอบคำถามของการรัน Java บน OS X / MacOS การตอบ "ฉันจะทำสิ่งนี้บนแพลตฟอร์ม X" ด้วย "แค่ใช้ VM / shim เพื่อทำบนแพลตฟอร์ม Y" ไม่ได้ผล
whitfin

โดยเฉพาะอย่างยิ่งสำหรับการพัฒนาจาวาพื้นเมือง (เช่นใช้ SWIG, JNI และ LIBRARY_PATH)
Mizux

56

ข้อสันนิษฐาน: เครื่อง Mac และคุณได้ติดตั้ง homebrew แล้ว

ติดตั้งถัง (พร้อม Homebrew 0.9.5 หรือสูงกว่ามีถังอยู่ด้วยเพื่อข้ามขั้นตอนนี้):

$ brew tap caskroom/cask
$ brew tap caskroom/versions

ในการติดตั้ง java ล่าสุด:

$ brew cask install java

ในการติดตั้ง java 8:

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

หากคุณต้องการติดตั้ง / จัดการหลายรุ่นคุณสามารถใช้ 'jenv':

ติดตั้งและกำหนดค่า jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

เพิ่ม java ที่ติดตั้งลงใน jenv:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

วิธีดูจาวาที่ติดตั้งทั้งหมด:

$ jenv versions

คำสั่งดังกล่าวจะให้รายการของจาวาที่ติดตั้ง:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

กำหนดค่าเวอร์ชัน java ที่คุณต้องการใช้:

$ jenv global oracle64-1.6.0.39

วิธีตั้งค่า JAVA_HOME:

$ jenv enable-plugin export

2
ทางออกที่ดีที่สุด! ขอบคุณ!
viktorianer

1
ขอบคุณ! สิ่งที่ฉันกำลังมองหา
csomakk

ขอบคุณ. เริ่มต้นด้วยการแก้ปัญหาสั้น ๆ และตรงประเด็นและดำเนินการต่อด้วยเครื่องมือที่มีประโยชน์อื่น: 'jenv' นั้นสะดวกต่อการใช้งานและหายไปจากคำตอบอื่น ๆ ช่วยด้วยบรรจุภัณฑ์สกาล่า (2.12 / 2.13) รหัสในปี 2020
emllnd

ธิเช่นเสน่ห์ชงถังติดตั้ง adoptopenjdk / OpenJDK / adoptopenjdk8
jeadonara

25

ฉันมีปัญหาเดียวกันในการแก้ปัญหาเนื่องจากฉันต้องติดตั้ง JDK8 เพื่อเรียกใช้ตัวจัดการ SDK ของ Android (เพราะดูเหมือนว่าจะทำงานได้ไม่ดีกับ JDK9) อย่างไรก็ตามฉันบอกคุณว่าฉันแก้ปัญหาทั้งหมดใน Mac (Sierra) ได้อย่างไร

ขั้นแรกคุณต้องชงกับถังและjenv

  1. คุณสามารถหาคำแนะนำที่มีประโยชน์ที่นี่Homebrew ถังคู่มือการติดตั้ง อย่าลืมแตะ 'caskroom / เวอร์ชั่น' ที่กำลังทำงานอยู่ในเครื่อง: brew tap caskroom/versions
  2. หลังจากนั้นให้ติดตั้ง jenv ด้วย: brew install jenv
  3. ติดตั้งรุ่นใดก็ได้ที่คุณต้องการด้วย cask brew cask install java8(หรือjava7หรือjavaถ้าคุณต้องการติดตั้งรุ่นล่าสุด jdk9)
  4. ขั้นตอนสุดท้ายคือการกำหนดรุ่นที่จะเรียกใช้ (และให้ jenv จัดการ JAVA_HOME ของคุณ) jenv versionsเพื่อแสดงรายการทุกรุ่นที่ติดตั้งบนเครื่องของคุณจากนั้นเปิดใช้งานรุ่นที่คุณต้องการด้วยjenv global [JDK_NAME_OF_LIST]

คุณสามารถหาข้อมูลที่เป็นประโยชน์อื่น ๆ ได้ที่นี่ใน Github Gist brew-java-and-jenv.mdบนบล็อกนี้ติดตั้ง JDK หลายอันบน Macและบนเว็บไซต์ Jenv


jenv ค่อนข้างง่ายและมีประโยชน์สุด ๆ ฉันมีหลายโครงการที่ต้องการ java 8 และ 11
Nikhil Sahu


18

หากคุณมี Java เวอร์ชันต่าง ๆ บนเครื่องของคุณและคุณต้องการที่จะเลือกรันไทม์แบบไดนามิกเช่นในกรณีของฉันฉันมีสองเวอร์ชัน:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

คุณสามารถเปลี่ยนได้โดยการปรับเปลี่ยน/etc/profileเนื้อหา เพียงเพิ่ม (หรือแก้ไข) สองบรรทัดต่อไปนี้ที่ท้ายไฟล์:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

ในกรณีของฉันมันควรเป็นดังต่อไปนี้ถ้าฉันต้องการใช้:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

หลังจากบันทึกไฟล์โปรดเรียกใช้ source /etc/profileและควรใช้งานได้ นี่คือผลลัพธ์เมื่อฉันใช้ตัวเลือกที่หนึ่งและสองตามลำดับ:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

กระบวนการนี้คล้ายกันหากโฟลเดอร์ java ของคุณอยู่ในสถานที่ต่างกัน


ทำไมไม่สร้างนามแฝงสำหรับเวอร์ชั่นอื่นalias java8=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/javaล่ะ
cglacet

14

ดูเหมือนว่ายังไม่มีใครพูดถึง SDK ชาย ( https://sdkman.io/ )

มนุษย์ SKD อนุญาตให้ติดตั้ง Java เวอร์ชันต่างๆบน Mac และสลับไปมาระหว่างเวอร์ชันเหล่านี้ได้ง่าย ข้อมูลเพิ่มเติมสามารถดูได้ที่https://sdkman.io/usage https://sdkman.io/usage

ตัวอย่างเช่น:

$ sdk list java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-oracle
   + 8.0.181-oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install java 8.0.191-oracle

$ sdk use java 8.0.191-oracle

Using java version 8.0.191-oracle in this shell.                                                                                                                                                                                                      

$ java -version                                                                                                                                                                                                                        
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use java 11.0.1-open                                           

Using java version 11.0.1-open in this shell.

$ java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         ```


13

ฉันมีแอปพลิเคชั่นที่ใช้ทั้ง Java 7 และ 8 และต้องย้อนกลับไปกลับมาตลอดเวลา

ฉันใช้สคริปต์นี้เขียนโดย Johan:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

ตอนนี้คุณสามารถตั้งค่าเมื่อเริ่มต้นหรือโทรสคริปต์หลังจากนั้น
ติดตั้ง JDK สำหรับ Mac

Java 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Java 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


อัปเดตข้อเสนอแนะ !! :

ใช้ jenv https://www.jenv.be/และ homebrew

จากนั้นเพียงแค่jenv global oracle6401.6.0.39และชุดของมัน


1
+1: ฉันใช้สคริปต์นี้และฉันเห็นด้วยมันค่อนข้างมีประโยชน์สำหรับผู้พัฒนาที่มีหลายโครงการที่ต้องใช้จาวารุ่นต่าง ๆ
บาร์เคลย์

8
ไม่จำเป็นต้องตั้งค่าสคริปต์ใด ๆ ตราบใดที่คุณจำเป็นต้องใช้รุ่นเฉพาะของทั้งระบบ โดยพื้นฐานแล้วสิ่งที่คุณต้องทำคือเพิ่มใน~/.bashrcหรือ~/.bash_profile: export JAVA_HOME = "/ usr / libexec / java_home -v 1.8"และเพิ่มของคุณ$JAVA_HOME/binไปที่$PATHหากตัวติดตั้ง java ไม่ได้ทำไปแล้ว (หมายเหตุ: แทนที่เครื่องหมายคำพูดคู่ด้วย backticks สำหรับ / usr / libexec / java_home ไม่สามารถป้อน backticks ตามตัวอักษรในความคิดเห็น .. )
ccpizza

ถ้าคุณต้องการติดตั้ง Java 7 (พร้อมด้าน Java 8) ผ่าน homebrew คำสั่งจะถูกตามมาด้วยbrew tap caskroom/versions brew cask install java7
icfantv

2
jenvเป็นเครื่องมือที่สะดวกมากสำหรับการจัดการ Java หลายเวอร์ชันทั้งแบบโกลบอลหรือโลคัลต่อไดเร็กทอรี
Christian Long

12

ใช้โปรแกรมติดตั้งลุค

คำตอบอื่น ๆ ที่แนะนำให้ผู้จัดการแพคเกจHomebrewดูเหมือนจะสุดขีดสำหรับฉัน ฉันแน่ใจว่าHomebrewมีประโยชน์บางอย่าง แต่สำหรับการเรียกใช้ Java การติดตั้งHomebrewเป็นขั้นตอนพิเศษที่ไม่จำเป็น หากเป้าหมายของคุณคือเรียกใช้ Java เพียงดาวน์โหลดตัวติดตั้ง Mac จากแหล่งที่เชื่อถือได้

คุณมีหลายแหล่งที่จะได้รับแอพติดตั้งที่ใช้งานง่ายเพื่อวาง Java ไว้บน Mac ของคุณ รันโปรแกรมติดตั้งบน Mac ของคุณเช่นเดียวกับแอพอื่น ๆ

นี่คือแผนผังลำดับงานสำหรับการค้นหาแหล่งที่มาของ Java 11 ซึ่งบางส่วนยังมี Java 8

แผนผังลำดับงานแนะนำคุณในการเลือกผู้จำหน่ายสำหรับการนำ Java 11 ไปใช้งาน

ดาวน์โหลดตัวติดตั้งจากผู้จำหน่ายเช่น AdoptOpenJDK.net

หน้าดาวน์โหลดที่ AdoptOpenJDK.net

เรียกใช้โปรแกรมติดตั้ง

สกรีนช็อตของโปรแกรมติดตั้งทำงานอยู่

JavaVirtualMachines โฟลเดอร์ถูกต้องแล้ว

เหตุใดโปรแกรมติดตั้งของ Oracle จึงไม่ติดตั้งในตำแหน่งที่เหมาะสม และฉันจะแก้ไขปัญหานี้ได้อย่างไร

ไม่ใช่ปัญหา.

โฟลเดอร์/Library/Java/JavaVirtualMachines/เป็นบ้านใหม่สำหรับJVMบนMacOS

สกรีนช็อตของโฟลเดอร์ "/ Library / Java / JavaVirtualMachines /" ใน Finder

ในการติดตั้ง JVM ให้ใช้โปรแกรมติดตั้งดังที่อธิบายไว้ด้านล่าง

หากต้องการถอนการติดตั้งให้ใช้ Finder เพื่อลบ JVM จากโฟลเดอร์นั้น คุณจะได้รับแจ้งให้ใส่รหัสผ่านของผู้ดูแลระบบเพื่อทำการลบให้เสร็จสิ้น


Java 9 & 10 & 11

ย้อนกลับไปในปี 2010 แอปเปิ้ลเข้าร่วมOpenJDKโครงการพร้อมกับออราเคิล , IBM , Red Hat , Azulและผู้ผลิตอื่น ๆ Java สมาชิกแต่ละคนมีส่วนช่วยซอร์สโค้ดการทดสอบและข้อเสนอแนะให้กับฐานข้อมูล OpenJDK แบบครบวงจร

Apple สนับสนุนรหัสเฉพาะ Mac ส่วนใหญ่สำหรับ JVM ตอนนี้ Apple ไม่ได้เปิดตัว JVM เฉพาะ Mac ของตัวเองอีกต่อไป ตอนนี้คุณมีซัพพลายเออร์ JVM ที่คุณเลือกด้วยบิลด์ที่มาจาก OpenJDK codebase

คุณจะพบซอร์สโค้ดได้ที่: http://openjdk.java.net

จังหวะการออกใหม่

พึงระวังว่าในปี 2560, Oracle, JCP และ OpenJDK ได้นำแผน“ release Train” ใหม่อย่างรวดเร็วสำหรับ Java เวอร์ชันที่กำหนดตารางเวลาเป็นประจำเพื่อส่งมอบในลักษณะที่คาดการณ์ได้

อ่านโพสต์บล็อกของ 2018-07 Azul Systems สำหรับรายละเอียดมากมายขจัดความสับสนในการอัพเดท Java โดย Simon Ritterปรับปรุงความสับสนโดยไซมอนริท

อ่านJava ยังฟรียังคงฟรี

ผู้ขาย

สำหรับรายการการดำเนินการ JVM ในอดีตและปัจจุบันอย่างละเอียดโปรดดูหน้านี้ที่ Wikipediaหน้านี้ในวิกิพีเดีย

นี่คือการสนทนาของผู้ขายไม่กี่คน ดูผังงานด้านบนสำหรับผู้ขายเพิ่มเติม

Oracle JDK

Oracle ให้บริการตัวติดตั้ง JDK และ JRE สำหรับหลายแพลตฟอร์มรวมถึง macOS

หลายปีที่ผ่านมานับตั้งแต่ได้รับ Sun, Oracle ได้รวมส่วนที่ดีที่สุดของเครื่องยนต์ JVM สองตัวคือHotSpotและJRocketและรวมเข้ากับโครงการOpenJDK ที่ใช้เป็นพื้นฐานสำหรับการติดตั้ง Java ของแบรนด์ของตนเอง

แผนธุรกิจใหม่ของพวกเขาในปีพ. ศ. 2561 นั้นมีวัตถุประสงค์เพื่อให้มีการติดตั้ง Java ของ Oracle โดยมีค่าธรรมเนียมในการผลิตและไม่มีค่าใช้จ่ายสำหรับการใช้ในการพัฒนา / ทดสอบ / สาธิต การสนับสนุนสำหรับรุ่นก่อนหน้านั้นต้องใช้โปรแกรมสนับสนุนที่ต้องชำระเงิน พวกเขาได้ประกาศเจตนาของพวกเขาสำหรับการเปิดตัวแบรนด์ภายใต้ฟีเจอร์ที่เท่าเทียมกับ OpenJDK พวกเขายังบริจาคส่วนเสริมทางการค้าเช่นFlight Recorderให้กับโครงการ OpenJDK

ออราเคิลยังเปิดตัวบิวด์ของ OpenJDK โดยไม่รองรับ: http://jdk.java.net/

ออราเคิลมีการผลิตวัตถุประสงค์พิเศษ JDK, GraalVM

Zulu & Zingโดย Azul

Azul Systems นำเสนอผลิตภัณฑ์ JVM ที่หลากหลาย

  • ของพวกเขา Zuluสายผลิตภัณฑ์ขึ้นอยู่กับ OpenJDK โดยตรงและไม่มีค่าใช้จ่ายใด ๆ กับแผนการสนับสนุนแบบชำระเงินเพิ่มเติม
  • ของพวกเขาZingบรรทัดข้อเสนอผลิตภัณฑ์ JVM เชิงพาณิชย์เพิ่มขึ้นด้วยการใช้เทคนิคอื่นเช่นเฉพาะขยะสะสม

ทั้งสองบรรทัดเสนอตัวติดตั้งสำหรับ macOS

ฉันกำลังใช้ซูลูสำหรับ Java 10.0.1 บน MacOS High SierraกับIntelliJ 2,018.2 และVaadin 8 ฉันดาวน์โหลดจากหน้านี้ โดยวิธีการที่ฉันจะไม่พบรายการที่เกี่ยวข้องกับ Java ที่ติดตั้งบน Apple ระบบการตั้งค่าแอป

AdoptOpenJDK.net

AdoptOpenJDKเป็นความพยายามที่นำโดยชุมชนในการสร้างไบนารีของแหล่ง OpenJDK พวกเขาตั้งใจที่จะเสนอการอัปเดตเมื่อเวลาผ่านไปซึ่งสมาชิกชุมชนบริจาค

  • ตัวเลือกHotSpotหรือOpenJ9 engine ที่คุณเลือก
  • บิวด์ใช้ได้สำหรับ macOS, Linux และ Windows

OpenJ9โดย Eclipse

OpenJ9โครงการคือการดำเนินการของเครื่องยนต์ JVM อีกทางเลือกที่จะHotSpot

ตอนนี้สนับสนุนที่ Eclipse Foundation โดยใช้เทคโนโลยีและการสนับสนุนที่ไอบีเอ็มบริจาคในปี 2560

สำหรับไบนารีที่สร้างไว้ล่วงหน้าพวกเขาจะอ้างอิงโครงการAdoptOpenJDK ที่กล่าวถึงข้างต้น

แรงจูงใจในการเลือกผู้ขายสำหรับ Java.png


ติดตั้งอย่างไร

โปรแกรมติดตั้งที่ให้บริการโดย Oracle หรือโดย Azul นั้นง่ายต่อการใช้งาน เพียงเรียกใช้แอพตัวติดตั้งบน Mac ของคุณ หน้าต่างจะปรากฏขึ้นเพื่อระบุความคืบหน้าของการติดตั้ง

เมื่อเสร็จสิ้นให้ตรวจสอบการติดตั้ง JVM ของคุณโดย:

  • เยี่ยมชม/Library/Java/JavaVirtualMachines/โฟลเดอร์เพื่อดูรายการสำหรับ JVM ใหม่
  • รันคอนโซลเช่นTerminal.appและพิมพ์java -versionเพื่อดูยี่ห้อและหมายเลขรุ่นของ JVM ของคุณ

หลังจากตรวจสอบความสำเร็จให้ยกเลิกการกำหนดภาพ. dmg ใน Finder จากนั้นลบไฟล์. dmg ที่คุณดาวน์โหลด


11

รันคำสั่งเหล่านี้บน mac High Sierra

brew update
brew tap caskroom/versions
brew cask install java8

และตรวจสอบด้วยคำสั่ง

java -version

ได้รับนี้:Error: Download failed on Cask 'java8' with message: Download failed: https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-macosx-x64.dmg
Siddhartha


7

วิธีที่ดีที่สุดคือใช้ตัวจัดการแพคเกจ Brew แต่คำสั่ง

 brew cask install java8

ล้มเหลวด้วยข้อผิดพลาด:

Error: No available formula with the name "java8" 

ดังนั้นใช้

brew cask install caskroom/versions/java8

ฉันค้นหา "caskroom / versions / java8" ได้อย่างไร: ใช้คำสั่งชงการค้นหา:

brew cask search java8

7

หากคุณใช้งานไม่ใช่เพื่อการใช้ส่วนตัวคุณอาจต้องการใช้ OpenJDK แทนเพื่อหลีกเลี่ยงคดีความที่อาจเกิดขึ้นจาก Oracle

brew cask install adoptopenjdk8

find / usr / local / Homebrew / Library / Taps / | grep -i jdk | xargs rm -v ถ้าคุณเกิดขึ้นได้รับ "ข้อผิดพลาด: Cask adoptopenjdk8 มีอยู่ในหลายก๊อก:" ข้อผิดพลาด ...
Yordan Georgiev

5

หากคุณใช้ Mac เครื่อง Homebrew เป็นวิธีการติดตั้งเนื้อหา

มันดูเหมือนว่า 8 brew cask install javaรุ่นจะไม่มีอีกต่อล่าสุดดังนั้นจึงไม่ได้มีการใช้ค่าเริ่มต้น

แต่ฉันจัดการโดยทำสิ่งต่อไปนี้:

brew install homebrew/cask-versions/

หากล้มเหลวให้ลองวิธีถัดไปโดยตรง:

brew install homebrew/cask-versions/adoptopenjdk8

ทดสอบด้วยbrew cask listหรือjava -version


+1 นั่นใช้ได้กับฉันใน macOS 10.12.6 Sierra (หรือชงถังติดตั้งติดตั้ง adoptopenjdk / openjdk / adopttopenjdk8)
McAllister Bowman

+1 รายการแรกล้มเหลว (ข้อผิดพลาด: ไม่มีสูตรที่ใช้ชื่อ "homebrew / cask-version /") แต่รายการที่สองดูเหมือนว่าจะใช้งานได้ อัปเดตคำตอบเพื่อหลีกเลี่ยงการทำให้ผู้คนกลัวด้วยสิ่งที่เป็นรูปแรก
Dennis Jaheruddin

4

ที่ง่ายที่สุดคือการดาวน์โหลดไฟล์ dmg จากเว็บไซต์ต่อไปนี้และติดตั้งโดยดับเบิลคลิก

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ค้นหา JVM ที่พร้อมใช้งานจากโฮมไดเร็กทอรี

ls -al /Library/Java/JavaVirtualMachines

และอัปเดต. bash_profile ด้วยเวอร์ชันที่เกี่ยวข้อง

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

และในที่สุดก็

source ~/.bash_profile

3

ติดตั้งด้วย Homebrew

Java เวอร์ชันที่มีอยู่ใน Homebrew Cask ก่อนวันที่ 3 ตุลาคม 2018 เป็น Oracle JVM แน่นอน อย่างไรก็ตามตอนนี้มันได้รับการอัพเดตเป็น OpenJDK อย่าลืมอัปเดต Homebrew จากนั้นคุณจะเห็นเวอร์ชันล่าสุดพร้อมสำหรับการติดตั้ง

1. ติดตั้ง Homebrew หากคุณยังไม่ได้ติดตั้ง ตรวจสอบให้แน่ใจว่ามีการอัปเดต:

brew update

2. เพิ่มการแตะถังถ้าคุณยังไม่ได้ (หรือคุณไม่เห็น Java เวอร์ชันที่เก่ากว่าอีกต่อไปด้วยขั้นตอนที่ 3):

brew tap homebrew/cask-versions

3. และสำหรับเวอร์ชั่น AdoptOpenJDK ให้แตะที่:

brew tap adoptopenjdk/openjdk

ถังเหล่านี้เปลี่ยนรุ่น Java บ่อยและอาจมีก๊อกอื่น ๆ พร้อมกับรุ่น Java เพิ่มเติม

4. มองหาเวอร์ชันที่ติดตั้งได้:

brew search java 

หรือสำหรับ AdoptOpenJDK เวอร์ชั่น:

brew search jdk     

5. ตรวจสอบรายละเอียดเกี่ยวกับรุ่นที่จะติดตั้ง:

brew cask info java

หรือสำหรับเวอร์ชั่น AdoptOpenJDK:

brew cask info adoptopenjdk

6. ติดตั้ง JDK เฉพาะรุ่นเช่น java11, adoptopenjdk8 หรือเพียงแค่ java หรือ adopttopenjdk สำหรับปัจจุบัน ตัวอย่างเช่น:

**brew cask install java**

**brew cask install java8**

**brew cask install java11**

คุณสามารถใช้พา ธ ที่ผ่านการรับรองอย่างสมบูรณ์กับเวอร์ชันที่เก่ากว่าด้วย:

brew cask install homebrew/cask-versions/java11

สมมุติว่าฉันทำอะไรผิดพลาด แต่เมื่อพยายามทำ java8 ฉันพบข้อผิดพลาด: ข้อผิดพลาด: Cask 'java8' ไม่สามารถใช้งานได้: ไม่มีถังที่มีชื่อนี้อยู่
Dennis Jaheruddin

2

คุณสามารถลองสิ่งนี้:

$ brew search jdk
$ brew cask install homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home

 


2

วิธีที่ง่ายที่สุด

1) brew cask install java

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Cask เป็นส่วนขยายของ Homebrew ที่มีจุดประสงค์เพื่อจัดการไบนารี Mac ขนาดใหญ่และแอปพลิเคชันกราฟิก แต่ใช้ Homebrew อินเตอร์เฟส ดูคำตอบนี้ใน Apple StackExchange ด้วย


มันจะติดตั้งเวอร์ชั่นล่าสุดเสมอ
Ray Garner

1

ลอง :

ชง cask ติดตั้ง java 8, มันจะให้ผลลัพธ์ด้านล่าง

8tracksradiohelper adopttopenjdk8 amitv87-pip corretto8 icons8 vmware-fusion8 x48 zulu8

ป้อนต่อไป: ติดตั้ง brew cask adoptopenjdk8 ---- java 8 จะถูกติดตั้งใน Mac


0

ฉันขอแนะนำให้ใช้ SDK ชายที่ค่อนข้างง่ายในการเปลี่ยนเวอร์ชัน (ชั่วคราวและถาวร) และให้ SDK อื่น ๆ เช่นกัน ฉันใช้ SDK ชายมานานกว่าหนึ่งปีแล้ว

https://sdkman.io/


สำหรับเคล็ดลับเพื่อ sdkman.io! ฉันเห็นสิ่งนี้เนื่องจากเธรดยาวมาก แต่สามารถอ่านจบได้ Fyi ปลายนี้ก็อยู่เหนือ stackoverflow.com/a/54101167/242110
AnneTheAgile


-4

ขั้นตอนด้านล่างใช้ได้สำหรับฉัน

1) ถอนการติดตั้ง jdks ทั้งหมด

ในหน้าต่าง Terminal คัดลอกและวางคำสั่งด้านล่าง:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2) ติดตั้ง APPLE jdk

https://support.apple.com/kb/DL1572?locale=en_US

3) ดาวน์โหลด JDK ล่าสุดจาก Oracle และติดตั้งสำหรับฉันมันคือ JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

นั่นคือทั้งหมดที่มันจะทำงานเหมือนมีเสน่ห์

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