4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

miseを使ったら開発環境のバージョン管理が快適になった

Posted at

はじめに

私は普段、KotlinやJavaの開発をしていますが、プロジェクトによって、あるいはトラブルシューティングなどのため、実行環境のJavaバージョンを変えたくなるときがあります。
そんな時はJAVA_HOMEを変更する方法もあるでしょうし、SDKMAN!のようなツールを使う方もいるでしょう。
こういう問題は、Javaに限らず色んな言語・実行環境・ツールで発生します。

私は最近mise(ミーズ)というツールを使い始めたのですが、便利にバージョン管理できていますよというお話です。

この記事は「miseを個人でサクッと使う」(ローカルの開発環境を切り替える)ことに的を絞っています。

チームでプロジェクトごとの開発環境を共有する話や、miseそのものの詳細などは別の記事にする予定です。

mise.tomlも出てきません。

環境

この記事を書いている環境は以下の通りです。

OS: macOS Sequoia 15.3.1
ターミナル: warp v0.2025.02.12.16.51.stable_03

mise: 2025.2.8 macos-arm64 (2025-02-25)

何が良いの?(どう使うの?)

まず「何が良いのか」をお伝えします。
簡単に言えば、コマンド1つで開発環境を切り替えられるのが楽で良いです。
実際に使い方を見てみます。

mise lsでツール一覧確認

まずmise ls(ないしmise list)で、利用可能なツールの一覧を確認できます。

sh
$ mise ls

スクリーンショット 2025-03-05 22.35.38.png

出力を画像で貼っているのは、バージョンによって色が違うのを見てもらいたいからです。
現在使われているものとそうでないものは、色が違って表示されます。

この環境では、Javaでいうと17, 19, 21が入っていて、現在は21が使われているのが確認できました。

mise useでバージョン変更

ツールのバージョンを変えたい場合は、以下のようにmise useを使います。
ためしにJava17に切り替えましょう。

sh
$ mise use java@openjdk-17.0.2

これだけです!
あっさりと、使用する環境を変更できました。

mise lsで確認しましょう。

スクリーンショット 2025-03-05 22.44.06.png

ちゃんと17になっていますね!

一応、Javaのコマンドでもバージョンを確認してみましょう。

$ java -version
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)

ちゃんとJava17が使われていることが確認できました!

mise useを使う際、オプションなしだとカレントディレクトリ以下の環境が変更されます。
グローバルに(端末全体に)変更を反映したい場合、下記のように-gオプションを付与してください。

sh
$ mise use -g java@openjdk-17.0.2

導入

インストール

「何ができるのか」「どう便利なのか」の話が終わったところで、インストール方法を説明します。
と言っても、↓の公式ドキュメントに書いてあるとおりです。OSごとの導入方法や、Homebrewを使う場合など説明があるので、ご自分の環境に応じたコマンドを確認してください。

一例として、ここではhomebrew経由でインストールします。

sh
$ brew install mise

インストールできたことを確認するため、バージョンを見てみましょう。

sh
$ mise --version
              _                                        __              
   ____ ___  (_)_______        ___  ____        ____  / /___ _________
  / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
 / / / / / / (__  )  __/_____/  __/ / / /_____/ /_/ / / /_/ / /__/  __/
/_/ /_/ /_/_/____/\___/      \___/_/ /_/     / .___/_/\__,_/\___/\___/
                                            /_/
2025.2.8 macos-arm64 (2025-02-25)

ロゴの主張が激しいですが、ちゃんと出てますね。

アクティベート

アクティベートとは

インストールできたら次はアクティベートの設定をします。

この記事では細かい話は省きますが、アクティベートすると常に最適な環境変数やPATHが使われるので便利になります。

アクティベート方法

アクティベートの方法も、↓の公式ドキュメントに書いてある通りです。OSや、使っているシェルごとにアクティベート用のコマンドが用意されているので実行してください。

一例として、zshを使っている場合は↓ですね。

sh
$ echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

要は.zshrceval "$(mise activate zsh)"を加えています。
シェルの設定を書き換えた後は、設定を読み込み直しましょう

sh
$ source ~/.zshrc

ここまで出来たら、mise doctor(ないしmise dr)で問題ないことを確認しましょう。

sh
$ mise dr
version: 2025.2.8 macos-arm64 (2025-02-25)
activated: yes
shims_on_path: no

(中略)

No problems found

出力が長いので省略しましたが、activated: yesNo problems foundとなっていれば準備完了です!

使う

ツールのインストール

インストールとアクティベートが済んだだけでは、まだ何もツールがありません。
ためしにmise lsをやってみても何も出てこないと思います。

sh
$ mise ls
Tool  Version  Source  Requested 

というわけで、さっそく管理したいツールをインストールしましょう。
インストールする時は、下記のコマンドを実行します。

sh
$ mise install <ツール名>@<バージョン>

ちなみにバージョンを省略すると、最新の安定版がインストールされます。

私は今回、JavaのOpenJDK 21を入れたいので、下記のように実行します。

sh
$ mise install java@openjdk-21.0.2

成功すれば、下記のようにmise lsの結果に出てくるようになります。

$ mise ls
Tool  Version         Source  Requested 
java  openjdk-21.0.2

使えるバージョンのチェック

ちなみに、ツールの使えるバージョン等を確認したい時は、mise ls-remoteが使えます。

sh
$ mise ls-remote <ツール>

Javaで試すとこんな感じですね。
Javaはバージョンと言うかディストリビューションが多すぎて大量に出力されるので、略しまくってますが、色々扱えるよという雰囲気は感じてもらえるのではないでしょうか。

sh
$ mise ls-remote java
adoptopenjdk-jre-11.0.15+10
adoptopenjdk-jre-11.0.16+101
adoptopenjdk-jre-11.0.16+8
(中略)
corretto-17.0.11.9.1
corretto-17.0.12.7.1
corretto-17.0.13.11.1
corretto-17.0.14.7.1
(中略)
graalvm-community-21.0.0
graalvm-community-21.0.1
graalvm-community-21.0.2
(中略)
mandrel-23.1.3.1-Final+java21
mandrel-23.1.4.0-Final+java21
mandrel-23.1.5.0-Final+java21
mandrel-23.1.6.0-Final+java21
(中略)
openjdk-19.0.0
openjdk-19.0.1
openjdk-19.0.2
(中略)
temurin-jre-21.0.3+9.0.LTS
temurin-jre-21.0.4+7.0.LTS
temurin-jre-21.0.5+11.0.LTS
temurin-jre-21.0.6+7.0.LTS
(後略)

使うツールの指定

後は記事の冒頭で説明したのと同じですが、mise useで使うツールを指定するだけです。

sh
$ mise use <ツール>@<バージョン>

さっき入れたJavaのOpenJDK 21を使いたい場合はこうですね。

sh
$ mise use java@openjdk-21.0.2

mise lsを実行すると、useで指定したツールの色が変わって、使わないものはグレーになっていますね。

スクリーンショット 2025-03-05 22.35.38.png

インストールされていないものをmise use

ちなみに、mise useは使うツールの切り替えに使うと説明してきましたが、未インストールのツールをmise useで指定すると、そのツールをインストールした上で、それを使うように切り替えます。

試しにまだ入っていないJava23を入れてみましょうか。

sh
$ mise use java@openjdk-23.0.2
mise To enable macOS integration, run the following commands:
sudo mkdir /Library/Java/JavaVirtualMachines/openjdk-23.0.2.jdk
sudo ln -s /Users/fujita/.local/share/mise/installs/java/openjdk-23.0.2/Contents /Library/Java/JavaVirtualMachines/openjdk-23.0.2.jdk/Contents

openjdk version "23.0.2" 2025-01-21
OpenJDK Runtime Environment (build 23.0.2+7-58)
OpenJDK 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing)
mise java@openjdk-23.0.2 ✓ installed
mise ~/.config/mise/config.toml tools: java@openjdk-23.0.2

useの出力だけ見ても分かりにくいので、例によってmise lsを見てみると

スクリーンショット 2025-03-05 23.07.22.png

ちゃんと23が使われていますね!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?