注: これらのソリューションは、Java 8や新しいJava 13を含むJavaのさまざまなバージョン、およびリストされているバージョンマネージャーでカバーされている他の以前のJavaバージョンで機能します。これには、OpenJDK、Oracle、IBM、Azul、Amazon Correto、Gralなどの代替JDKが含まれます。Java 7、Java 8、Java 9、Java 10、Java 11、Java 12、Java 13で簡単に作業できます!
JDKの切り替えを管理するだけでなく、インストールを実行する方法のいくつかのオプションがあります。インストールは、Homebrew、SDKMAN、Jabba、または手動インストールで実行できます。切り替えは、JEnv、SDKMAN、Jabbaによって、または設定によって手動で行うことができますJAVA_HOME
。これらのすべてを以下に説明します。
取り付け
まず、Homebrew、SDKMAN、またはtar.gzファイルの手動インストールなど、好きな方法でJavaをインストールします。手動インストールの利点は、JDKの場所をMac OSXの標準化された場所に配置できることです。
SDKMANでインストール
これは、インストールとバージョン切り替えの両方を処理するという点で単純なモデルですが、JDKを非標準のディレクトリにインストールするという警告があります。
< 以下の「SDKMANを使用したバージョンのインストールと切り替え」を参照 >
Jabbaを使用してインストールする
これは、インストールとバージョン切り替えの両方が同じツールで処理されるという点で、単純なモデルでもあります。インストールは非標準のディレクトリに行われます。
< 以下の「Jabbaを使用したバージョンのインストールと切り替え」を参照 >
OpenJDKダウンロードページから手動でインストールします。
Mac OSX用のOpenJDKをhttp://jdk.java.net/からダウンロードします(例:Java 13)
OpenJDK tarをアーカイブ解除し、結果のフォルダー(つまりjdk-13.jdk
)を/Library/Java/JavaVirtualMachines/
フォルダーに配置します。これは、JDKインストールの標準で予期される場所であるためです。また、実際のどこにでも設置できます。
Homebrewでインストール
2018年10月3日より前にHomebrew Caskで利用可能なJavaのバージョンは、確かにOracle JVMでした。ただし、現在はOpenJDKに更新されています。必ずHomebrewを更新すると、インストール可能な最新バージョンが表示されます。
Homebrewをまだインストールしていない場合はインストールしてください。それが更新されていることを確認してください:
brew update
キャスクタップを追加していない場合(またはステップ#3で古いJavaバージョンが表示されなくなった場合):
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の他のいくつかのフレーバーは次のとおりです。
OpenJDKの Azul Systems Java Zulu認定ビルドは、サイトの指示に従ってインストールできます。
Zulu®は、Java SE標準に完全に準拠したOpenJDKの認定ビルドです。Zuluは100%オープンソースで、無料でダウンロードできます。これで、Java開発者、システム管理者、およびエンドユーザーは、デプロイメントの柔軟性とアップグレードタイミングの制御により、オープンソースJavaのすべてのメリットを享受できます。
Amazon Correto OpenJDKビルドには、バージョン8またはバージョン11(他のバージョンも登場予定)用の使いやすいインストールパッケージがあり/Library/Java/JavaVirtualMachines/
、Mac OSXの標準ディレクトリにインストールされます。
Amazon Correttoは、Open Java Development Kit(OpenJDK)の無料のマルチプラットフォームのプロダクションレディディストリビューションです。Correttoには、パフォーマンスの強化とセキュリティ修正を含む長期サポートが付属しています。Amazonは何千もの本番サービス上でCorrettoを内部で実行しており、CorrettoはJava SE標準との互換性があると認定されています。Correttoを使用すると、Linux、Windows、macOSなどの一般的なオペレーティングシステムでJavaアプリケーションを開発して実行できます。
私のJDKはどこですか?!?!
以前にインストールされたJava JDKの場所をデフォルトのシステムの場所に見つけるには、次のコマンドを使用します。
/usr/libexec/java_home -V
一致するJava仮想マシン(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 / Home
11、x86_64: "Java SE 11" /
ライブラリ/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
/ライブラリ/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
インストールされたJDKの場所を知ることは、JEnvのようなツールを使用したり、SDKMANにローカルインストールを追加したり、JabbaでシステムJDKをリンクしたりするときにも役立ちます。これらの場所を知る必要があります。
他のツールによってインストールされたJDKを見つける必要がある場合は、次の場所を確認してください。
- SDKMANのインストール先
~/.sdkman/candidates/java/
- Jabbaのインストール先
~/.jabba/jdk
手動でバージョンを切り替える
Java実行可能ファイルは、で設定されたJDKを使用するラッパーであるJAVA_HOME
ため、これを変更して、使用されているJDKを変更することもできます。
たとえば、JDK 13をインストールまたはuntarした/Library/Java/JavaVirtualMachines/jdk-13.jdk
場合、それが最も高いバージョン番号である場合は、それが既にデフォルトになっているはずですが、そうでない場合は単に設定できません。
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
これで、パスに含まれるJava実行可能ファイルはすべてこれを参照し、正しいJDKを使用します。
/usr/libexec/java_home
前述のユーティリティを使用すると、エイリアスを作成したり、さまざまなJDKインストールの場所を識別してJavaバージョンを変更するコマンドを実行したりできます。たとえば、.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がマシン上にすでに存在し、任意の場所にあることができると想定しています。通常、インストールされているJava JDKはにあり/Library/Java/JavaVirtualMachines/
ます。JEnvは、Javaのグローバルバージョン(現在のシェルに1つ)と、一部のプロジェクトが他のプロジェクトとは異なるバージョンを必要とする場合に便利なディレクトリごとのローカルバージョンを設定できます。
JEnvをまだインストールしていない場合はインストールします。サイトhttp://www.jenv.be/にある手動インストールまたはHomebrewの使用に関する説明。
JEnvにJavaバージョンを追加します(これを他の場所に配置した場合は、ディレクトリを調整します)。
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
別のシェルを開くことなどが可能性があり、その1つのコマンドに対して正しく設定してください。
SDKMANを使用したバージョンのインストールと切り替え
SDKMANは少し異なり、インストールと切り替えの両方を処理します。SDKMANはまた、インストールされたJDKを独自のディレクトリツリー(通常は)に配置し~/.sdkman/candidates/java
ます。SDKMANでは、グローバルなデフォルトバージョン、および現在のシェルに固有のバージョンを設定できます。
https://sdkman.io/installからSDKMANをインストールします
利用可能なJavaバージョンをリストして、バージョンIDを確認します。
sdk list java
これらのバージョンの1つ(例えば、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を参照してください。
バージョンを変更するPATH
とJAVA_HOME
、SDKMANが自動的に管理します。
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にリンクしたり、GralalVM、Adopt JDK、IBM JDKなどの興味深いJDKの組み合わせを見つけることもできます。完全な使用ガイドは、ホームページにもあります。
バージョンを変更するPATH
とJAVA_HOME
、Jabbaが自動的に管理します。