⚙️

WSL2 × Ubuntu 24.04で最速 Scala 2.13 環境構築ガイド

に公開

WSL2 の Ubuntu 24.04 で Scala 2.13 環境を構築する方法

WSL2上のUbuntu 24.04でScalaコード(REPLやスクリプト)を実行できる開発環境をセットアップしてみましょう。WSL2を使えば、Windows上で簡単にUbuntu環境を利用でき、Scalaの学習や開発を始めることができます。この記事では、Scala 2系の最新安定版であるScala 2.13(執筆時点の最新版は2.13.16)を動かすために、必要なJDK(Java開発キット)とScala本体のインストール手順を紹介します。それでは始めましょう!

前提条件と準備

  • WSL2とUbuntu 24.04のセットアップ: すでにWSL2上でUbuntu 24.04が利用できる状態であることを前提とします(インストール方法はMicrosoftの公式ガイド等をご参照ください)。WSL2のUbuntuターミナルを開き、以下の手順を実行します。

まず、Ubuntuのパッケージリストを最新に更新しておくことをおすすめします。次のコマンドを実行しましょう:

% sudo apt update

これで準備完了です。次にJava(JDK)のインストールから進めます。

OpenJDK 17(Java)のインストール

Scalaを実行するにはJava実行環境(JDK)が必要です。Scala 2.13はJava 8以降で動作しますが、ここでは扱いやすいOpenJDK 17(2021年リリースの長期サポート版)をインストールします。Ubuntu 24.04の標準リポジトリから簡単に導入できます。

ターミナルで以下のコマンドを入力し、OpenJDK 17をインストールしてください(-yオプションはインストール確認を自動でYesにします):

$ sudo apt install -y openjdk-17-jdk zip unzip

補足: 上記では将来使うzip/unzipコマンドも一緒にインストールしています。これは後述のSDKMANインストール時に必要となるためです。 インストールが完了したら、Javaのバージョンを確認してみましょう:

$ java --version
openjdk 17.0.15 2025-04-15
OpenJDK Runtime Environment (build 17.0.15+6-Ubuntu-0ubuntu124.04)
OpenJDK 64-Bit Server VM (build 17.0.15+6-Ubuntu-0ubuntu124.04, mixed mode, sharing)

上記のようにバージョン17のOpenJDKが表示されればOKです。

Scala 2.13のインストール (SDKMAN を使用)

続いてScala本体をインストールします。Ubuntuにもscalaパッケージがありますが、執筆時点でバージョン2.11.12と古く、目的のScala 2.13ではありません。そのため、ここでは SDKMAN! という便利なツールを使って最新版のScala 2.13を入れてみます。

SDKMANのインストール

公式サイトの案内に沿って、次のコマンド一発でSDKMANをインストールできます。

$ curl -s "https://get.sdkman.io" | bash

インストールが終わったら、SDKMANをすぐ使えるように環境を読み込みます。新しいシェルを開くか、以下を現在のシェルで実行してください:

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

上記コマンドを実行すると、 sdk コマンドが使えるようになります。試しにバージョン確認をしてみましょう:

$ sdk version

SDKMAN!
script: 5.19.0
native: 0.7.4 (linux x86_64)

SDKMANの準備ができたので、いよいよScalaをインストールします。

Scala 2.13のインストール (最新版2.13系)

SDKMANを使ってScala 2.13系の最新版をインストールしましょう。執筆時点の最新Scala 2.13は 2.13.16 です。以下のようにバージョンを指定してインストールします:

$ sdk install scala 2.13.16

上記コマンドを実行すると、SDKMANがScala 2.13.16をダウンロードしてセットアップしてくれます。今後ターミナルを開いたときに自動的にこのScalaが使われます。

インストールが完了したら、念のためScalaのバージョンを確認します:

$ scala -version
Scala code runner version 2.13.16 -- Copyright 2002-2025, LAMP/EPFL and Lightbend, Inc. dba Akka

このようにScala 2.13.16と表示されればインストール成功です!🎉

Scala REPLの動作確認

それではScalaが正常に動くか、REPL(対話型シェル)で試してみましょう。REPLを起動するにはターミナルで単に scala コマンドを実行します:

$ scala
Welcome to Scala 2.13.16 (OpenJDK 64-Bit Server VM, Java 17.0.15).
Type in expressions for evaluation. Or try :help.

scala> println("Hello, Scala!")
Hello, Scala!

scala> 1 + 1
val res1: Int = 2

scala> :quit
$

上記のように scala コマンドでScalaシェルが立ち上がり、 println で文字列を出力したり、計算式を入力して結果を確認したりできます。 scala> というプロンプトが表示されたら、好きなScala式を入力してEnterしてみてください。例えば println("Hello, Scala!") と入力すると、本当に表示されましたね。

最後の :quit コマンドでREPLを終了し、元のシェルに戻っています。問題なくREPLが機能していれば、Scala環境はバッチリ動作しています。

Scalaスクリプトを作成して実行する

REPLだけでなく、Scalaはスクリプトファイルを直接実行することもできます。簡単なスクリプトを作って動かしてみましょう。

まず、現在のディレクトリに hello.scala という名前のファイルを作成し、次の内容を記述します。

// hello.scala
println("Hello, Scala!")

スクリプトが用意できたら、Scalaインタプリタを使ってこのファイルを実行します。ターミナルで次のように入力してください:

$ scala hello.scala
Hello, Scala!

hello.scala 内で指定したメッセージが表示されました!このように scala コマンドにファイル名を渡すだけで、そのScalaスクリプトを実行できます。特別な main 関数やクラス定義を用意しなくても、トップレベルに書いたコードが順次実行されるので、ちょっとした処理を試すのに便利です。

おまけ: インストールした環境のクリーンアップ

ここまででScala環境のセットアップと動作確認は完了です。最後におまけとして、インストールしたものを後で削除・アンインストールする方法も触れておきます(必要に応じて行ってください)。

  • Scalaのアンインストール (SDKMAN使用の場合): 別のバージョンに切り替えたり不要になったりした場合、SDKMAN経由でインストールしたScalaは次のコマンドでアンインストールできます。
$ sdk uninstall scala 2.13.16

このコマンドはSDKMANの管理下からScala 2.13.16を削除します。アンインストール後に scala -version を実行すると、別のバージョンが有効でない限りScalaコマンドは見つからなくなるはずです。

  • Javaのアンインストール (APT使用の場合): sudo apt remove openjdk-17-jdk でOpenJDK 17を削除できます(必要に応じて sudo apt autoremove で未利用パッケージも整理してください)。

  • SDKMAN自体の削除: SDKMANをシステムから取り除きたい場合は、ホームディレクトリ内の .sdkman フォルダを削除し、シェルの初期化ファイル(例えば ~/.bashrc )に追加されたSDKMANの設定行を消去します。

$ rm -rf "$HOME/.sdkman"

その後、ターミナルを再起動すればSDKMANは完全に無効になります。

以上で、WSL2上のUbuntuにおけるScala開発環境のセットアップ手順は終わりです。Scala REPLで対話的に試したり、スクリプトとして実行したりできるようになりました。必要最小限のステップで構築しましたが、 Scalaを本格的にプロジェクトで使う場合 はビルドツールのsbtを導入したり、IDE(例: IntelliJ IDEAやVS CodeのScala拡張)を利用するとさらに便利です。まずは今回構築した環境でScalaに親しんでみてください。楽しんでコーディングを学びましょう!🚀

Discussion