Bagaimana cara menginstal Java di Mac OSX yang memungkinkan peralihan versi?


313

Saya ingin menginstal OpenJDK Java pada Mac OSX dan membuatnya bekerja bersama JDK lain karena ini adalah rilis yang lebih baru. Saat ini, saya mengunduh tar.gz dan meletakkannya di jalur saya tetapi itu sulit untuk dipelihara.

Satu-satunya instalasi lain yang saya temukan yang melakukan lebih banyak hal secara otomatis adalah menginstal melalui tong Homebrew. Sepertinya hanya versi yang sekarang juga:

brew cask info java

Menunjukkan:

java: 13,33: 5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/

Jadi saya bisa menginstalnya dari sana, tapi lalu bagaimana? Apakah saya hanya terjebak dengan versi baru?


Hanya bertanya, bisakah kita menjaga agar tag pertanyaan terbatas pada satu versi? Karena tidak ada script / langkah instalasi khusus versi seperti itu. Ini adalah pertanyaan umum (non-versi spesifik) dan dapat cukup hanya ditandai dengan java-11 , karena saya menganggap itu adalah tempat di mana orang akan mulai mencari apa yang disarankan oleh pertanyaan dan jawaban.
Naman

Skrip dalam jawaban memang menyertakan versi spesifik meskipun mudah untuk menafsirkannya untuk versi lain. Tetapi, ini juga bagian dari apa yang dicari oleh anggota komunitas, jadi adalah baik untuk membantu mereka menemukan jawaban yang benar dengan cepat dengan membantu membawa perhatian pada jawaban yang diperbarui dan modern dan membedakan dari topik lama versi 6 dan versi 8 yang sudah ketinggalan zaman. Memiliki versi stabil terbaru dan versi baru terbaru saya pikir adalah tag yang masuk akal untuk disimpan.
Jayson Minard

Saya mungkin akan merekomendasikan untuk menggunakan jenv untuk mengelola beberapa versi Java.
paranza

Jawaban:


718

Catatan: Solusi ini berfungsi untuk berbagai versi Java termasuk Java 8 dan Java 13 baru, dan untuk versi Java sebelumnya lainnya yang dicakup oleh manajer versi yang terdaftar. Ini termasuk JDK alternatif dari OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal dan banyak lagi. Mudah bekerja dengan Java 7, Java 8, Java 9, Java 10, Java 11, Java 12, dan Java 13!

Anda memiliki beberapa opsi tentang cara melakukan instalasi serta mengelola peralihan JDK. Instalasi dapat dilakukan oleh Homebrew, SDKMAN , Jabba , atau instalasi manual. Perpindahan dapat dilakukan oleh JEnv , SDKMAN , Jabba , atau secara manual dengan pengaturan JAVA_HOME. Semua ini dijelaskan di bawah ini.


Instalasi

Pertama, instal Java menggunakan metode apa pun yang Anda sukai termasuk Homebrew, SDKMAN atau instalasi manual file tar.gz. Kelebihan dari instalasi manual adalah bahwa lokasi JDK dapat ditempatkan di lokasi standar untuk Mac OSX.

Instal dengan SDKMAN

Ini adalah model sederhana karena menangani instalasi dan versi switching, dengan peringatan bahwa itu menginstal JDK ke direktori non-standar.

< lihat di bawah "Memasang dan Mengganti versi dengan SDKMAN" >

Instal menggunakan Jabba

Ini juga merupakan model sederhana karena instalasi dan perpindahan versi ditangani oleh alat yang sama. Instalasi dibuat ke direktori non-standar.

< lihat di bawah "Memasang dan Mengganti versi dengan Jabba" >

Instal secara manual dari halaman unduhan OpenJDK:

  1. Unduh OpenJDK untuk Mac OSX dari http://jdk.java.net/ (misalnya Java 13 )

  2. Batalkan arsip tar OpenJDK, dan tempatkan folder yang dihasilkan (yaitu jdk-13.jdk) ke /Library/Java/JavaVirtualMachines/folder Anda karena ini adalah lokasi standar dan yang diharapkan dari instalasi JDK. Anda juga dapat menginstal di mana saja yang Anda inginkan dalam kenyataan.

Instal dengan Homebrew

Versi Java yang tersedia di Homebrew Cask sebelum 3 Oktober 2018 adalah memang Oracle JVM. Namun sekarang, sekarang telah diperbarui ke OpenJDK. Pastikan untuk memperbarui Homebrew dan kemudian Anda akan melihat versi terbaru yang tersedia untuk diinstal.

  1. instal Homebrew jika Anda belum melakukannya. Pastikan itu diperbarui:

    brew update
  2. Tambahkan tong tong, jika Anda belum melakukannya (atau Anda tidak melihat versi Java yang lebih lama dengan langkah # 3):

    brew tap homebrew/cask-versions

    dan untuk versi AdoptOpenJDK , tambahkan keran itu:

    brew tap adoptopenjdk/openjdk

    Tong-tong ini sering mengubah versi Java mereka, dan mungkin ada keran lain di luar sana dengan versi Java tambahan.

  3. Cari versi yang dapat diinstal:

    brew search java   

    atau untuk versi AdoptOpenJDK:

    brew search jdk     
  4. Periksa detail pada versi yang akan diinstal:

    brew cask info java

    atau untuk versi AdoptOpenJDK:

    brew cask info adoptopenjdk
  5. Menginstal versi tertentu dari JDK seperti java11, adoptopenjdk8, atau hanya javaatau adoptopenjdkuntuk saat ini. Sebagai contoh:

    brew cask install java

    Anda dapat menggunakan jalur yang sepenuhnya memenuhi syarat untuk versi yang lebih lama juga:

    brew cask install homebrew/cask-versions/java11

Dan ini akan diinstal ke /Library/Java/JavaVirtualMachines/yang merupakan lokasi tradisional yang diharapkan pada Mac OSX.

Opsi instalasi lainnya:

Beberapa rasa openJDK lainnya adalah:

Sistem Azul Java Bangunan bersertifikat Zulu dari OpenJDK dapat diinstal dengan mengikuti instruksi di situs mereka .

Zulu® adalah bangunan bersertifikasi OpenJDK yang sepenuhnya sesuai dengan standar Java SE. Zulu adalah sumber terbuka 100% dan dapat diunduh secara bebas. Sekarang pengembang Java, administrator sistem, dan pengguna akhir dapat menikmati manfaat penuh Java open source dengan fleksibilitas penggunaan dan kontrol atas waktu pemutakhiran.

Amazon Correto OpenJDK builds memiliki mudah menggunakan paket instalasi untuk versi 8 atau versi 11 (versi lain akan datang), dan menginstal ke/Library/Java/JavaVirtualMachines/direktoristandarpada Mac OSX.

Amazon Corretto adalah distribusi Open Java Development Kit (OpenJDK) tanpa biaya, multi platform, dan siap produksi. Corretto hadir dengan dukungan jangka panjang yang akan mencakup peningkatan kinerja dan perbaikan keamanan. Amazon menjalankan Corretto secara internal pada ribuan layanan produksi dan Corretto disertifikasi sebagai kompatibel dengan standar Java SE. Dengan Corretto, Anda dapat mengembangkan dan menjalankan aplikasi Java pada sistem operasi populer, termasuk Linux, Windows, dan macOS.


Di mana JDK saya?!?!

Untuk menemukan lokasi Java JDK yang sebelumnya diinstal terinstal di lokasi sistem default, gunakan:

/usr/libexec/java_home -V

Mesin Virtual Java Yang Cocok (6):
13, x86_64: "OpenJDK 13" /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: "OpenJDK 12" / Library / Java / JavaVirtualMachines / jdk-12 .jdk / Contents / Beranda
11, x86_64: "Java SE 11" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" / Library / 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" / Library /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Anda juga dapat melaporkan hanya lokasi versi Java tertentu menggunakan -v. Misalnya untuk Java 13:

/usr/libexec/java_home -v 13

/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

Mengetahui lokasi JDK yang terinstal juga berguna saat menggunakan alat seperti JEnv, atau menambahkan instalasi lokal ke SDKMAN, atau menghubungkan sistem JDK di Jabba - dan Anda perlu tahu di mana menemukannya.

Jika Anda perlu menemukan JDK diinstal oleh alat lain, periksa lokasi ini:

  • SDKMAN dipasang ke ~/.sdkman/candidates/java/
  • Jabba diinstal ke ~/.jabba/jdk

Berpindah versi secara manual

Java executable adalah pembungkus yang akan menggunakan apa pun yang dikonfigurasikan oleh JDK JAVA_HOME, sehingga Anda dapat mengubahnya agar juga mengubah JDK mana yang sedang digunakan.

Sebagai contoh, jika Anda menginstal atau JDK 13 yang belum diarsipkan ke /Library/Java/JavaVirtualMachines/jdk-13.jdkjika itu adalah nomor versi tertinggi itu harus sudah menjadi default, jika tidak Anda bisa dengan mudah mengatur:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

Dan sekarang apa pun Java executable di jalan akan melihat ini dan menggunakan JDK yang benar.

Menggunakan /usr/libexec/java_homeutilitas seperti yang dijelaskan sebelumnya membantu Anda membuat alias atau menjalankan perintah untuk mengubah versi Java dengan mengidentifikasi lokasi instalasi JDK yang berbeda. Misalnya, membuat alias shell di Anda .profileatau .bash_profilemengubahnya JAVA_HOMEuntuk Anda:

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

Kemudian untuk mengubah versi, cukup gunakan alias.

java8
java -version

versi java "1.8.0_144"

Tentu saja, pengaturan JAVA_HOMEsecara manual juga berfungsi!


Berpindah versi dengan JEnv

JEnv mengharapkan Java JDK sudah ada di mesin dan bisa berada di lokasi mana pun. Biasanya Anda akan menemukan Java JDK terpasang di/Library/Java/JavaVirtualMachines/. JEnv memungkinkan pengaturan versi global Java, satu untuk shell saat ini, dan versi lokal per-direktori yang berguna ketika beberapa proyek memerlukan versi yang berbeda dari yang lain.

  1. Instal JEnv jika Anda belum melakukannya, petunjuk di situs http://www.jenv.be/ untuk menginstal secara manual atau menggunakan Homebrew.

  2. Tambahkan versi Java apa pun ke JEnv ( sesuaikan direktori jika Anda menempatkannya di tempat lain ):

    jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
  3. Setel versi global Anda menggunakan perintah ini:

    jenv global 13

Anda juga dapat menambahkan versi lain yang ada menggunakan jenv adddengan cara yang sama, dan daftar yang tersedia. Misalnya Java 8:

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 
jenv versions

Lihat JEnv docs untuk perintah lebih lanjut. Anda sekarang dapat beralih di antara versi Java (Oracle, OpenJDK, lainnya) kapan saja baik untuk keseluruhan sistem, untuk shell, atau per direktori lokal.

Untuk membantu mengelola JAVA_HOMEsaat menggunakan JEnv Anda dapat menambahkan plugin ekspor untuk melakukan ini untuk Anda.

$ jenv enable-plugin export
  You may restart your session to activate jenv export plugin echo export plugin activated

Plugin ekspor mungkin tidak menyesuaikan JAVA_HOMEjika sudah disetel, jadi Anda mungkin perlu menghapus variabel ini di profil Anda sehingga dapat dikelola oleh JEnv.

Anda juga dapat menggunakan jenv exec <command> <parms...>untuk menjalankan perintah tunggal dengan JAVA_HOMEdan PATHmengatur dengan benar untuk satu perintah itu, yang dapat mencakup membuka shell lain.


Menginstal dan Mengganti versi dengan SDKMAN

SDKMAN sedikit berbeda dan menangani instalasi dan switching. SDKMAN juga menempatkan JDK yang terinstal ke dalam pohon direktori sendiri, yang biasanya~/.sdkman/candidates/java. SDKMAN memungkinkan pengaturan versi default global, dan versi khusus untuk shell saat ini.

  1. Instal SDKMAN dari https://sdkman.io/install

  2. Daftar versi Java yang tersedia untuk memastikan Anda tahu ID versi

    sdk list java
  3. Instal salah satu versi tersebut, misalnya, Java 13:

    sdk install java 13.0.0-open 
  4. Jadikan 13 versi default:

    sdk default java 13.0.0-open

    Atau beralih ke 13 untuk sesi:

    sdk use java 13.0.0-open

Ketika Anda mendaftar versi yang tersedia untuk instalasi menggunakan perintah daftar, Anda akan melihat berbagai distribusi Java:

sdk list java

Dan instal versi tambahan, seperti JDK 8:

sdk install java 8.0.181-oracle

SDKMAN dapat bekerja dengan versi yang sudah diinstal sebelumnya. Lakukan saja pemasangan lokal yang memberikan label versi Anda sendiri dan lokasi JDK:

sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

Dan gunakan dengan bebas:

sdk use java my-local-13

Informasi lebih lanjut tersedia di Panduan Penggunaan SDKMAN bersama dengan SDK lain yang dapat diinstal dan dikelola.

SDKMAN akan secara otomatis mengelola Anda PATHdan JAVA_HOMEuntuk Anda ketika Anda mengubah versi.


Menginstal dan Berpindah versi dengan Jabba

Jabba juga menangani instalasi dan switching. Jabba juga menempatkan JDK yang terinstal ke dalam pohon direktori sendiri, yang biasanya~/.jabba/jdk.

  1. Instal Jabba dengan mengikuti instruksi di halaman rumah .

  2. Daftar JDK yang tersedia

    jabba ls-remote
  3. Instal Java JDK 12

    jabba install openjdk@1.12.0
  4. Gunakan:

    jabba use openjdk@1.12.0

Anda juga dapat alias nama versi, tautan ke JDK yang sudah terpasang, dan menemukan campuran JDK yang menarik seperti GraalVM, Adopt JDK, IBM JDK, dan banyak lagi. Panduan penggunaan lengkap juga tersedia di halaman beranda.

Jabba akan secara otomatis mengelola Anda PATHdan JAVA_HOMEuntuk Anda ketika Anda mengubah versi.


2
Untuk pemasangan manual saya pikir Anda perlu mengatur JAVA_HOMEuntuk memilih versi tertentu, seperti export JAVA_HOME=$(/usr/libexec/java_home -v <version>)di Anda.bash_profile
Peter Hull

@PeterHull beberapa manajer versi Java tidak suka JAVA_HOMEmengatur secara manual dan mereka mengelolanya sendiri. JEnv pasti tidak akan menyesuaikannya jika diatur sebelumnya, tidak yakin tentang Jabba dan SDKMAN tetapi mereka biasanya akan mengelola pengaturan itu. Hanya penginstalan manual dengan NO versi switching yang akan mengatur nilai ini secara langsung.
Jayson Minard

cukup setuju, akan lebih baik jika Anda dapat mencatat bahwa dalam jawaban Anda sebagai pertanyaan asli yang diminta untuk beralih versi dan pengaturan JAVA_HOME adalah cara (hanya?) untuk melakukannya untuk metode pemasangan manual.
Peter Hull

2
Java in brew tong berubah menjadi OpenJDK 11 kemarin, 3 Okt 2018.
Xingang Huang

16
Mungkin jawaban yang paling luas dan berguna untuk menjalankan JDK yang berbeda pada MacOS yang mencakup banyak pendekatan berbeda, beberapa yang belum pernah saya temui sebelumnya.
Kevin Hooke

7

Beginilah cara saya melakukannya.

Langkah 1: Instal Java 11

Anda dapat mengunduh Java 11 dmg untuk mac dari sini: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

Langkah 2: Setelah instalasi Java 11. Konfirmasikan instalasi semua versi. Ketikkan perintah berikut di terminal Anda.

/usr/libexec/java_home -V

Langkah 3: Edit .bash_profile

sudo nano ~/.bash_profile

Langkah 4: Tambahkan 11.0.1 sebagai default. (Tambahkan baris di bawah ini ke file bash_profile).

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

untuk beralih ke versi apa pun

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

Sekarang Tekan CTRL + X untuk keluar dari bash. Tekan 'Y' untuk menyimpan perubahan.

Langkah 5: Muat ulang bash_profile

source ~/.bash_profile

Langkah 6: Konfirmasikan versi Java saat ini

java -version

Solusi bagus Tetapi bagaimana jika masih memiliki java -versi menunjuk ke 8 sementara saya telah mengekspor JAVA_HOME 11?
AlexGera

1
Pertanyaannya adalah bertanya tentang Open JDK, tetapi Anda menautkan ke Oracle JDK sebagai gantinya. Open JDK tampaknya tidak memiliki installer atau instruksi instalasi.
Splaktar

1
Menanggapi @AlexGera - tambahkan baris ini: ekspor $ PATH = $ JAVA_HOME / bin: $ PATH
Fuad Efendi

6

Beralih versi sistem-standar secara manual tanpa alat pihak ke-3:

Sebagaimana dirinci dalam jawaban yang lebih lama , pada macOS /usr/bin/javaadalah alat pembungkus yang akan menggunakan versi Java yang ditunjuk oleh JAVA_HOMEatau jika variabel itu tidak disetel akan mencari instalasi Java di bawah /Library/Java/JavaVirtualMachines/dan akan menggunakan yang dengan versi tertinggi. Ini menentukan versi dengan melihat di Contents/Info.plistbawah setiap paket.

Berbekal pengetahuan ini Anda bisa:

  • mengontrol versi mana yang akan digunakan sistem dengan mengganti nama Info.plistdalam versi yang tidak ingin Anda gunakan sebagai default (file itu tidak digunakan oleh Java runtime itu sendiri).
  • mengontrol versi mana yang akan digunakan untuk tugas-tugas tertentu dengan mengatur $JAVA_HOME

Saya baru saja memverifikasi ini masih benar dengan OpenJDK & Mojave.

Pada sistem baru, tidak ada versi Java yang diinstal:

$ java -version
No Java runtime present, requesting install.

Batalkan ini, unduh OpenJDK 11 & 12ea di https://jdk.java.net ; instal OpenJDK11:

$ cd /Library/Java/JavaVirtualMachines/
$ sudo tar xzf ~/Downloads/openjdk-11.0.1_osx-x64_bin.tar.gz

Sistem java sekarang 11:

$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

Instal OpenJDK12 (akses awal saat ini):

$ sudo tar xzf ~/Downloads/openjdk-12-ea+17_osx-x64_bin.tar.gz 

Sistem java sekarang 12:

$ java -version
openjdk version "12-ea" 2019-03-19
[...]

Sekarang mari kita "sembunyikan" OpenJDK 12 dari system java wrapper:

$ cd jdk-12.jdk/Contents/
$ sudo mv Info.plist Info.plist.disabled

Sistem java kembali ke 11:

$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

Dan Anda masih dapat menggunakan versi 12 tepat waktu dengan mengatur secara manual JAVA_HOME:

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
$ java -version
openjdk version "12-ea" 2019-03-19
[...]

1
dan itu juga harus benar sekarang dengan bangunan AdoptOpenJDK
Hugues M.

6

Jika Anda memiliki beberapa versi yang diinstal pada mesin Anda, tambahkan berikut ini di profil bash:

export JAVA_HOME_7 = $ (/ usr / libexec / java_home -v1.7)

export JAVA_HOME_8 = $ (/ usr / libexec / java_home -v1.8)

export JAVA_HOME_9 = $ (/ usr / libexec / java_home -v9)

Dan tambahkan alias berikut:

alias java7 = 'export JAVA_HOME = $ JAVA_HOME_7'

alias java8 = 'export JAVA_HOME = $ JAVA_HOME_8'

alias java9 = 'export JAVA_HOME = $ JAVA_HOME_9'

Dan dapat beralih ke versi yang diperlukan dengan menggunakan alias:

Di terminal:

~ >> java7 export JAVA_HOME=$JAVA_7_HOME


ya, ini tercakup dalam jawaban lain di sini.
Jayson Minard

3

Alternatif lain menggunakan SDKMAN ! Lihat https://wimdeblauwe.wordpress.com/2018/09/26/switching-between-jdk-8-and-11-using-sdkman/

Pertama instal SDKMAN: https://sdkman.io/install lalu ...

  1. Instal Oracle JDK 8 dengan: sdk install java 8.0.181-oracle
  2. Instal OpenJDK 11 dengan: sdk install java 11.0.0-open

Untuk menukar:

  • Beralih ke JDK 8 dengan sdk use java 8.0.181-oracle
  • Beralih ke JDK 11 dengan sdk use java 11.0.0-open

Untuk mengatur default:

  • Default ke JDK 8 dengan sdk default java 8.0.181-oracle
  • Default ke JDK 11 dengan sdk default java 11.0.0-open

3

Dengan Homebrew dan jenv:

Asumsi: Mesin Mac dan Anda sudah menginstal homebrew.

Pasang tong:

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

Untuk menginstal java terbaru:

$ brew cask install java

Untuk menginstal java 8:

$ brew cask install java8

Untuk menginstal java 9:

$ brew cask install java9

Jika Anda ingin menginstal / mengelola beberapa versi maka Anda dapat menggunakan 'jenv':

Instal dan konfigurasikan jenv:

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

Tambahkan java yang diinstal ke 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

Untuk melihat semua java yang diinstal:

$ jenv versions

Perintah di atas akan memberikan daftar java yang diinstal:

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

Konfigurasikan versi java yang ingin Anda gunakan:

$ jenv global oracle64-1.6.0.39

1
Error: caskroom/cask was moved. Tap homebrew/cask-cask instead, lalufatal: repository 'https://github.com/Homebrew/homebrew-cask-cask/' not found
ChumiestBucket

apa yang dikatakan @ChumiestBucket - solusi ini memiliki beberapa masalah
javadba

1

IMHO, Tidak perlu menginstal semua aplikasi / paket tambahan.

Periksa versi yang tersedia menggunakan perintah:

> /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
    11, x86_64: "Java SE 11-ea" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    10.0.2, x86_64: "Java SE 10.0.2"    /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_181-zulu-8.31.0.1, x86_64:    "Zulu 8"    /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
    1.8.0_151, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Sekarang jika Anda ingin memilih Azul JDK 8 dalam daftar di atas, dan BUKAN Oracle Java SE 8, jalankan perintah seperti di bawah ini:

> /usr/libexec/java_home -v 1.8.0_181
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

Untuk memilih Java SE 8 dari Oracle, Anda akan menjalankan perintah:

> /usr/libexec/java_home -v 1.8.0_151
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

Seperti yang Anda lihat, nomor versi yang disediakan adalah rangkaian string unik: 1.8.0_181 vs 1.8.0_151


Bukankah seharusnya contoh pertama memiliki string versi 1.8.0_181-zulu-8.31.0.1? atau apakah itu pencocokan sebagian?
Jayson Minard

Ini sebenarnya tidak mengubah apa pun untuk menggunakan versi Java, itu hanya melaporkan lokasi JAVA_HOME. Peralihan manual menggunakan perintah-perintah ini tercakup dalam jawaban saya yang lain.
Jayson Minard
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.