目次
概要
色んなJavaプロジェクトを1つのマシン(PC)で開発すると、それぞれのプロジェクトで使うJavaバージョンによって開発環境を構築しなければならない場合があります。
この時、毎回Javaを削除して当該プロジェクトに必要なJavaバージョンをインストールすることはできません。今回のブログポストでは、macOS
でjEnv
を使って1つのマシンで色んなJavaバージョンをインストールして管理する方法について説明します。
jEnvのインストール
次のコマンドを使ってjEnv
をインストールします。
brew install jenv
その後、次のコマンドを実行してexport
プラグインとmaven
プラグインを有効にします。
jenv enable-plugin export
jenv enable-plugin maven
また、次のコマンドを実行してjEnv
が管理するJavaバージョンを使うように設定します。
echo 'export alias java=$HOME/.jenv/shims/java' >> ~/.zshrc`
Javaバージョンリスト
次のコマンドを実行してインストール可能なJavaバージョンを確認します。
brew search openjdk
そしたら次のようにインストール可能なJavaのバージョンリストを確認することができます。
==> Formulae
openjdk ✔ openjdk@11 ✔ openjdk@17 ✔ openjdk@8 openj9 openvdb
==> Casks
adoptopenjdk adoptopenjdk/openjdk/adoptopenjdk14
adoptopenjdk/openjdk/adoptopenjdk-jre adoptopenjdk/openjdk/adoptopenjdk14-jre
...
OpenJDKのインストール
今回のブログポストではOpenJDK
の11
と17
バージョンをインストールしてみます。次のコマンドを実行してOpenJDK 11
バージョンをインストールします。
brew install openjdk@11
インストールが終わったら次のコマンドを使ってインストールしたJDK
をjEnv
に登録します。
sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc
export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"
jenv add /usr/local/Cellar/openjdk@11/11.0.19/libexec/openjdk.jdk/Contents/Home
同じ方法でOpenJDK 17
バージョンをインストールしてjEnv
に登録します。
brew install openjdk@17
sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
export CPPFLAGS="-I/usr/local/opt/openjdk@17/include"
jenv add /usr/local/Cellar/openjdk@17/17.0.7/libexec/openjdk.jdk/Contents/Home
jenv add /usr/local/Cellar/openjdk/20.0.1/libexec/openjdk.jdk/Contents/Home
jenv versions
インストールが終わったら、次のコマンドを実行してインストールされて使うことができるJavaバージョンを確認します。
jenv versions
そしたら次のように先ほどインストールしたOpenJDK 11
とOpenJDK 17
を確認することができます。
* system (set by JENV_VERSION environment variable)
11.0
11.0.19
openjdk64-11.0.19
openjdk64-17.0.7
jenv version
次のコマンドを実行するとjEnv
で設定された現在のJavaバージョンを確認することができます。
jenv version
そしたら次のように現在jEnv
で選択されたJavaバージョンを確認することができます。
system (set by JENV_VERSION environment variable)
実際Javaバージョンを確認するためには次のコマンドを実行します。
java --version
そしたら、次のように実際使ってるJavaバージョンを確認することができます。
openjdk 20.0.1 2023-04-18
OpenJDK Runtime Environment Homebrew (build 20.0.1)
OpenJDK 64-Bit Server VM Homebrew (build 20.0.1, mixed mode, sharing)
インストールしたJavaバージョンを使う
次はjEnv
でJavaバージョンを変更する方法についてみてみましょう。次のコマンドを実行するとOpenJDK 17
をグローバルで使うことができます。
jenv global openjdk64-17.0.7
次のコマンドを使うと現在のプロジェクトにだけ適用することができます。
jenv local openjdk64-17.0.7
このコマンドは.java-version
ファイルを生成して開発環境にjEnv
が有効になっている場合、自動的にそのバージョンを使うように変更してくれます。
次のコマンドを使うと現在のshell
のみで、当該バージョンを使うことができます。
jenv shell openjdk64-17.0.7
.java-versionファイル
先ほどjenv local
コマンドを実行すると自動で.java-version
ファイルが生成されることが確認できました。これを使うと、jEnv
を使う開発環境では自動でJava
バージョンを変更してくれます。
なので、この.java-version
ファイルを使うと当該プロジェクトを実行するために必要なJavaバージョンを共有することができます。もし、現在のプロジェクトに.java-version
ファイルがない場合、.java-version
ファイルを作成して次のように当該プロジェクトで必要なJavaバージョンを書き込みます。
openjdk64-17.0.7
完了
これでjEnv
を使って同じマシンで色んなJavaバージョンを使う方法について見てみました。もし、皆さんも色んなJavaバージョンの開発環境が必要な場合、jEnv
を使ってバージョン管理をしてみてください。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。