【Scala】Scala ~ 環境構築編 / IntelliJ IDEA in WSL ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/03/10/193805

で、Windwos で、Scala 開発環境を構築したが
Windows/WSL + IntelliJ IDEA + Scala の開発環境を構築しようって
話になったので構築してみる

目次

【1】IntelliJ IDEA
 1)IntelliJ IDEAの種類
 2)サポートOS
【2】IntelliJ / WSL を使う上で注意
【3】構築手順
 0)前提条件
 1)WSLでの Ubuntu インストール
 2)IntelliJ IDEA のインストール
 3)プロジェクト作成
 4)JDKの設定
 5)デバッグ確認

【1】IntelliJ IDEA

* JVM 言語用の統合開発環境 (IDE)

1)IntelliJ IDEAの種類

[1] Ultimate
[2] Community Edition

https://www.jetbrains.com/ja-jp/idea/download/#section=windows

[1] Ultimate

* 有料版

[2] Community Edition

* 無料かつオープンソース Apache 2.0 でライセンス
* JVM と Android 開発のためのすべての基本的な機能を提供

2)サポートOS

* Windows
* MAC
* Linux

http://www.nhk.or.jp/gogaku/english/timetrial/index.html

【2】IntelliJ / WSL を使う上で注意

https://blog.foresta.me/posts/scala-in-wsl/

にあるように、Windows側に IntelliJ をインストールすると
以下のようなエラー
~~~~~~~~~~~~~~~~~~
sbt import cancelled: Cannot run program 
"//wsl$/Ubuntu/home/username/.sdkman/candidates/java/18.0.2-amzn/bin/java"
 (in directory "\\wsl$\Ubuntu\home\username\work\ScalaSampleProject"):
CreateProcess error=193, %1 は有効な Win32 アプリケーションではありません
~~~~~~~~~~~~~~~~~~
がでるらしい。

IntelliJ は、どのOSでもサポートしているので、
WSL側のLinuxに、IntelliJ を入れて対応することにする。

【3】環境設定

* WSL2 がインストールされていること

簡易手順

wsl --set-default-version 2

wsl --install -d Ubuntu-22.04

1)WSLでの Ubuntu インストール

sudo apt-get update
sudo apt-get upgrade

# GUI
# See https://ao-tela.com/wsl_gui/  
sudo apt-get install libgl1-mesa-dev xorg-dev xbitmaps x11-apps
sudo apt-get install ubuntu-desktop

2)IntelliJ IDEA のインストール

# Download
wget https://download.jetbrains.com/idea/ideaIC-2023.1.2.tar.gz

# Install
sudo tar -xvf ideaIC-2023.1.2.tar.gz -C /opt/

# 起動
cd /opt/idea-IC-231.9011.34/bin/
./idea.sh

任意:Pathを通す

vi ~/.bash_profile
~~~~~
export PATH=$PATH:/opt/idea-IC-231.9011.34/bin/
~~~~~

source ~/.bash_profile

# 起動できるか確認
idea.sh

3)プロジェクト作成

[1] [+ New Project]を選択
[2] 以下を入力
 + Name: (任意、今回は「sample」)
 + Language: [+]-[Scala]

4)JDKの設定

[1] IntelliJ で [File]-[Project Structure]を選択
[2] [Platform Settings]-[SDKs]において、「SDK home path」のフォルダを
 クリックし、「Download JDK」を選択
[3] (JDK11の場合)以下を入力し、「Download」ボタン押下
 + Version: 11
 + Vendor: (任意、今回は、Amazon Corretto 11.0.19)
 + Location: (任意、今回は、/home/<USER>/java)

補足

* これをやらないと、Scala実行時、以下のエラーが発生する

【エラー内容】
Abnormal build process termination: 
nice -n 10 /mnt/c/java/jdk-11/bin/java ・・・略・・・
nice: ‘/mnt/c/java/jdk-11/bin/java’: No such file or directory

https://hirosht.medium.com/intellij-abnormal-build-process-termination-error-with-idea-2021-2-update-ea3bf91983dd

5)デバッグ確認

[1] 以下のサンプルでブレークポイントを張る
[2] [Run]-[Debug Main.java]を選択
 => ブレークポイントに止まるか確認する

サンプル

package main

object Main extends App {
  class Hello(val name: String) {
    def printHello(): Unit = {
      println(s"Hello, ${this.name}!!!")
    }
  }

  class World(val name: String) {
    def printWorld(): Unit = {
      println(s"World, ${this.name}...")
    }
  }

  implicit def toWorld(hello: Hello): World = {
    new World(hello.name)
  }

  val hello = new Hello("Mike")
  hello.printHello // Hello, Mike!!! ★ここにブレークポイントを張る
  hello.printWorld // World, Mike...
}

参考文献

https://snowsystem.net/other/windows/wsl2-ubuntu-systemctl/

関連記事

Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331
WSL2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/01/29/000000
Linux環境変数に関するあれこれ
https://dk521123.hatenablog.com/entry/2015/07/16/103501
IntelliJ IDEA ~ デバッグあれこれ ~
https://dk521123.hatenablog.com/entry/2023/11/05/000000