WindowsでWSL2 + IntelliJ IDEA の Scala 開発環境を作ろうとしたらハマった
はじめに
普段は Mac で開発をしていて、Windows は遊びにしか使ってなかったんですが、せっかく WSL2 があるならそれも使ってみようと思って、 Scala の開発環境でも作ろうかなと思ったら若干ハマったので、僕がやったことを書き残そうと思います。
想定読者
- WSL2 の環境はできている人
- IntelliJ IDEA を一発起動して、別でターミナルを起動したくない人
- IntelliJ IDEA を普段 Windows 以外の環境で使っていて、Windowsでも環境作っとこうかな~って人
- 経験則でいいから、どうやったら動くのか知りたい人
書かないこと
- WSL2 とはなんぞや
- Scala とはなんぞや
- sbt/JDKとはなんぞや
- IntelliJ IDEA とはなんぞや
- その他専門的なこと
- なぜ動かなかったのか、なぜ動いたのかの理論的なこと
予防線
あんまりそれぞれの用語の定義については気にしていないので、文章としておかしいところは多々出てくると思います。
何をやりたくて、何にハマったのか
普段は、Mac を使っていて、開きたいプロジェクトのディレクトリに移動して、 idea .
を打って IntteliJ IDEA を起動してからは、そのまま IntelliJ IDEA の1画面で諸々を完結させていました。
なので、最初にやりたかったのは以下のようなことです
-
idea
で IntelliJ IDEA を起動したい - IntelliJ IDEA くんには、WSL2 の中で
apt-get
やcurl
で取得しておいた JDK や sbt を使ってほしい - IntelliJ IDEA くんの中で開くターミナルは、WSL2(僕の場合 ubuntu)であってほしい
さすがに IntelliJ IDEA 自体は Windows に入れることは仕方がないとして、「まぁ実行ファイルに WSL からパスを通して、あとはよしなに JDK やら何やら選んでくれるやろ~」と思ってました。
WSL で JDK と sbt を準備して、「さ~て、あとはWindows側からInteliJ IDEAを起動して、 wsl のディレクトリに入ってプロジェクトを作ればうまく動くやろ!」と思ってやってみたところ、
cannot run program \\wsl$\Ubuntu\...
だのなんだのといって、 なんか全然うまく動かなかった わけです。
何をしたら動いたのか
僕が色々試して、最終的にたどり着いた答えは Windows に環境を構築すること です。
当初のイメージとしてやりたかったのは、
[WSL2] JDK, sbt, shell... ← [Windows] IntelliJ IDEA
だったわけですが、僕が実際に手軽に動かせたのは
[WSL2]shell → [Windows] JDK, sbt, IntelliJ IDEA
だったわけです。伝わらないですよね、これから説明します。
何が困ったか
なんかわかりませんが、とりあえず Windows にインストールした IntelliJ IDEA は WSL2 でインストールしたJDKを検出はするものの、読み込めませんでした。
IntelliJ IDEA で プロジェクト作成をするときに、検出された JDK を選択できると思いますが、そこに (WSL)
と書いてあるやつは軒並みアクセスできなかったっぽく、詰みました。
詰んだかどうかの判断については、 build.sbt のシンタックスハイライトが崩壊していたらまぁ詰んでるでしょう。
とりあえず動くまでにやったこと
WSL2 に入れていた Java 関連のパッケージを全削除
sudo apt-get remove "regexp"
をして、具体的には正規表現の部分を openjdk-*
的な感じで全部消しておきました。
そもそもインストールした覚えがない人はしなくて大丈夫です。
JDKをインストールしましょう
debug
とついてないリリースをダウンロードして、.zip
を解凍したフォルダの bin/
にパスを通すと良いです。
Windows の環境変数については適当にググってやってみてください。
その後、コマンドプロンプトで set
を打ったときに Path=...
の中に指定したものがあれば多分うまくいっています。
もっというと、java -version
でエラーが出なければとりあえず多分うまくいってます。
sbt をダウンロードしましょう
このあたりからダウンロードして、インストールしておけばよかったような記憶があります。
IntelliJ IDEA をダウンロードしましょう
下手に試行錯誤すると、過去に検出されたJDKなどが検出されてしまうので、特にこだわりの設定などなければ再インストールすればいいと思います。
IntelliJ IDEA のデフォルトのターミナルを書き換える
仮にここまでの手順が全てうまくいった人がいたとしても、IntelliJ IDEA を起動してみてターミナルを起動するとコマンドプロンプトなりPower Shellなりが起動されるでしょう。
もともとの目的は WSL2 からプロジェクトに入りたい、ということだったので、IntelliJ IDEA のデフォルトターミナルを変えましょう。
最下部の Terminal の部分を開いて、 +
あたりから設定を開き、デフォルトのシェルを以下のようにすればWSLで作り込んだシェルを開けるはずです。
C:\Windows\System32\wsl.exe
何を諦めたのか
WSL2 でディレクトリを掘っていったときに、 CLI で idea
を起動するのは諦めました。
Windows から IntelliJ IDEA を起動し、ターミナルを開いてみれば WSL2 の環境をそのまま使えるというくらいで自分としては十分だったので、妥協します。
その他困ったこと
ダウンロードする JDK を間違っていた件
ちゃんと JDK を入れたはずが、メモリ確保エラーみたいなのが出てプロジェクト作るたびに萎えてた。
なんと、32bit 版を入れていたことだけが原因だった。
IntelliJ IDEA 自体がこの辺に対応してなかったりするのかなっていう話
試行錯誤してるときにこのあたりに行き着いたけど、普段使ってるバージョンでできないかな~って思っていたのでリアルタイムな話はあんまり精査しなかった。
ひょっとしたらしばらくしたら当たり前に使えるようになるのかも
これだと JDK らへんの切り替えが細かくできないかもしれない話
たしかに。でも 8系 でとりあえず困ってないので気にしてない
所感
エラーメッセージとかちゃんと保存して記事に貼り付けてたら検索されやすいのかもな~。
困ったらすぐ調べて、解決してから「なるほどね」ってなるからどんなエラー出てたかわからないのが問題
Author And Source
この問題について(WindowsでWSL2 + IntelliJ IDEA の Scala 開発環境を作ろうとしたらハマった), 我々は、より多くの情報をここで見つけました https://zenn.dev/hikamayogoat/articles/89be3bd8608237著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol