[Java] macでJDKのバージョンを切り替える方法 ~ JAVA_HOMEを設定する

java Java
スポンサーリンク

こんにちは、素人エンジニアです。

この記事では、macでOracle JDKのバージョンを切り替える方法を紹介します。

開発プロジェクトごとに使用するJavaのバージョンが異なるときは、これから紹介する方法でJDKを切り替えましょう。

JDKのバージョンを切り替える手順

1. 現在使用しているJDKのバージョンをチェック
java -version

ターミナルでjava -versionを実行して、現在使用されているJavaのバージョンをチェックします。

< 例 >

% java -version
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)

このように、javaのバージョン情報が出力されればOKです。

JDKがインストールされていない場合は、バージョン情報が出力されません。
Oracle JDKのインストール方法については、この記事で解説しましたので参考にしてください。

2. インストールされているJDKをチェック
/usr/libexec/java_home -V

このコマンドを実行すると、macにインストールされているOracle JDKの一覧が表示されます。

< 例 >

% /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    16.0.1 (x86_64) "Oracle Corporation" - "Java SE 16.0.1" /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home
    11.0.11 (x86_64) "Oracle Corporation" - "Java SE 11.0.11" /Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home

今回は、11.0.11に切り替えていきます。

3. JAVA_HOMEを設定する
/usr/libexec/java_home -v "バージョン番号"

このコマンドで、指定したバージョンのJAVA_HOMEのPATHが出力されます。

< 例 >

% /usr/libexec/java_home -v "11"
/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home
% /usr/libexec/java_home -v "16"
/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home

このJAVA_HOMEのPATHを通してあげることで、バージョンの切り替えが可能です。

次の二行を設定ファイル(.zshrc.bash_profileなど)に追加してください。
設定ファイルはopen ~/.zshrcで開けます

export JAVA_HOME=`/usr/libexec/java_home -v "11"`
PATH=$JAVA_HOME/bin:$PATH

/usr/libexec/java_home -v “11”の数字を書き換えるだけで、そのバージョンのJDKがJAVA_HOMEに設定されます。指定したバージョンがない場合は、現在設定されているJAVA_HOMEのPATHがそのまま設定されます。

設定ファイルでPATHを通す方法は、こちらの記事を参考にしてください。


最後に、魔法のコマンドsourceも忘れずに実行してください。
これをしないと反映されません。

source ~/.zshrc

4. バージョンが切り替わっているかチェック
% java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)

java -versionを実行して、バージョン情報が切り替わっていたら完了です!

PATHを通す一連の処理は、今後何度もやることになるかもしれません。
覚えてしまってもいいかも。

↓↓Javaの基本はこの1冊でマスターできる!!↓↓

このブログでは、【ConoHa WING】を使っています

このブログでは、【ConoHa WING】を使っています
わたし、稼げました。

このブログでは、プログラミングでの学びをノート代わりとして記事としています。
少しずつPVが増えてきて、先日Google AdSenseの収益が振り込まれました!

どれくらいの記事数、期間、PVがあれば振込ボーターの8千円に到達するのか?
私のリアルな数字を紹介します。

ブログ村を利用しています
素人エンジニアの苦悩 - にほんブログ村
PVアクセスランキング にほんブログ村
Java Mac
スポンサーリンク
スポンサーリンク
シェアする
amateur_engineerをフォローする
素人エンジニアの苦悩

コメント

  1. nanasi より:

    この作業をシェルスクリプトで行うことはできますか?

    • コメントありがとうございます。(返信遅れてすいません…)
      引数に指定した値から、sedコマンドを使ってjavaのバージョンを変更するシェルスクリプトを考えてみました。
      すでに良い方法を見つけているかもしれませんが、少しでも参考になればと思います。

      実行イメージ
      % sh change-java-version.sh 16
      % source ~/.zshrc
      % java -version

      ↓以下、シェルスクリプトの内容(.zhrcを想定)
      #!/bin/sh
      version=$1
      target=”JAVA_HOME=\`\/usr\/libexec\/java_home -v”
      #.zshrcファイル内のJAVA_NOMEのversionを変更
      sed -i -e “s/${target} \”.*\”\`/${target} \”${version}\”\`/g” ~/.zshrc

タイトルとURLをコピーしました