WSL2 で IntelliJ を使った Java 環境構築

# 目次
[1. はじめに](#1-はじめに)
[2. 環境](#2-環境)
[3. SDKMAN のインストール](#3-sdkman-のインストール)
[4. Java のインストール](#4-java-のインストール)
[5. Maven のインストール](#5-maven-のインストール)
[6. JetBrain ToolBox のインストール](#6-jetbrain-toolbox-のインストール)
[7. IntelliJ IDEA Community 版のインストール](#7-intellij-idea-community-版のインストール)
[8. IntelliJ 起動](#8-intellij-起動)
[9. まとめ](#9-まとめ)
[参考文献](#参考文献)

# 1. はじめに
社会人になって本格的に Java での開発がはじまりました．大学と研究室では Python メインで研究していたため VScode 信者だったのですが，まあわがままばっか言ってられなくて IntelliJ を使わないといけない状況になりました．会社では Mac で開発しているのですが，家の PC は Windows．でも Wiondows に Java を入れる気にはならない...... そうだ，WSL があるやないかと調べ始めました．
どうやら Windows に入れた IntelliJ は WSL のファイルを認識するらしく，WSL に Java さえ入っていれば使えそうだと．IntelliJ をインストールしてプロジェクトをオープンしようとすると，確かに WSL のディレクトリに入ることができる．でもなぜか開けない...... 色々やったけどダメそうで，また調べると，不評ではあるが WSL に IntelliJ を入れて x11 で飛ばす手があると．てか[最近 WSL2 は何もせずともディスプレイ認識](https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/gui-apps)したよなと(数年前は苦労したのに泣)．
ということで，WSL2 に IntelliJ をぶち込んでやるぜって感じで今回の試みは始まりました．

# 2. 環境
Windows: Windows 11 Home 22H2
WSL2: Debian

WSL2 のインストールは他にお任せします．といっても[公式](https://learn.microsoft.com/ja-jp/windows/wsl/install)で十分かも．

# 3. SDKMAN のインストール
[SDKMAN 公式](https://sdkman.io/)の通りインストール．
`$ curl -s "https://get.sdkman.io" | bash `
.bashrc のケツに以下のような記載があれば大丈夫．あれば .bashrc を再読み込みして次へ．
```bash:.bashrc
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
```

# 4. Java のインストール
以下のコマンドでインストールする Java が表示される．
`$ sdk list java`
私が選んだのは以下の Java．
`$ sdk install java 17.0.7-amzn`
一応ちゃんと入ったか確認してどうぞ．
`$ java -version`

# 5. Maven のインストール
Spring Boot 使うこともあるかもなので，Maven も入れときます．Javaと同じ流れなので説明は省略．
`$ sdk list maven`
`$ sdk install maven 3.9.3`
`$ which mvn`
意味ないかもやけど，PATH を通してる人もいたので通しときます．
```bash:.bashrc
export M2_HOME="$SDKMAN_DIR/candidates/maven"
export PATH="$PATH:$M2_HOME/bin"
```

# 6. JetBrain ToolBox のインストール
[JetBrain ToolBox 公式](https://www.jetbrains.com/toolbox-app/)からダウンロードしよう．もちろん exe ちゃうよ，Linux の .tar.gz を選んでどうぞ．どんなやりかたでもいいんで，wsl2 のホームディレクトリとかに持ってきてください．ホームディレクトリに持ってきた人は以下のコマンドを実行，違う場所に持ってきた人は適当に読み替えてくれい．もしバージョンが違うならそこも変えて．
`$ sudo tar -xzf jetbrains-toolbox-1.28.1.15219.tar.gz -C /opt`
実行し終わったら PATH を通そう．.bashrc に以下を記載．
```bash:.bashrc
export PATH="$PATH:/opt/jetbrains-toolbox-1.28.1.15219"
```

# 7. IntelliJ IDEA Community 版のインストール
JetBrain ToolBox を起動するためにパッケージが必要でした．
`$ sudo apt install libfuse2`
`$ sudo apt install fuse`
自分は上の順にやったんやけど，もしかしたら fuse を入れるだけでいけるかも? 検証募．

JetBrain ToolBox を起動．GUI の画面が出てくるよ．
`$ jetbrains-toolbox`
適当にセットアップして，IntelliJ IDEA Community を探してインストール．

# 8. IntelliJ 起動
起動は JetBrain ToolBox のインストール済みツールから起動する感じになります．適当なプロジェクトを開くなり作るなりしましょう．
デフォルトでは SDK が選択できていなかったので，初回はちゃんと選んであげる必要がありそう．下の画像を参考にどうぞ．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600771/628d58a0-51e4-f1f9-3322-3966b9eb20c2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600771/74a8a954-febb-d0dd-5723-aeec7141df45.png)


# 9. まとめ
ネットの評判とは違い，悪い感じはしないですね．動きが遅いとか不安定やとは今んとこ感じたことないです．WSL2，ネイティブでディスプレイ対応してくれてありがとう．

# 参考文献
- WSL2 で (Linux 版の) intellij idea を使う方法, https://zenn.dev/axt/articles/4b12a6517b66e8#fn-699c-1, 2023-07-22 確認
**現時点で，"WSL2 上の Ubuntu で DISPLAY 変数をホスト側に向ける"までの処理をする必要はない!!! 情報は日々古くなるので，どんな記事でも書いていることを鵜呑みにしないこと．**
- Install IntelliJ IDEA, https://www.jetbrains.com/help/idea/installation-guide.html, 2023-07-22 確認

一応 Windows に入れた IntelliJ で WSL のファイルを開けるみたいやけど，わしはできなかった．
- IntelliJ IDEA (Windows, Java) & WSL2 開発環境構築（2022.11）, https://qiita.com/n-cat/items/4b49263984c94ea0b927, 2023-07-22 確認
- WSL2上でIntelliJ IDEAでJava開発, https://qiita.com/tseno/items/9817ffaa3c9b96e236fb, 2023-07-22 確認