Visual Studio CodeでJava (その2)
Windows7のサポートがついに終了したので、Windows10にこれまでの開発環境を構築することにした。
そういえば、1年以上前にこんな記事を書いたのを思い出したので、Javaの開発環境をeclipseやIntelljではなくVSCodeにしてみようと思い、Windows Subsystem for Linux(WSL)のUbuntuに構築するまでを記事にまとめることにした。
以前の記事で、Ubuntuに環境構築する方法はまとめたので、今回は主にWSLとVSCodeの連携をメインに記事にする。
構築する環境
- Windows 10 Pro 64bit [1809]
- Windows Subsystem for Linux(WSL)のUbuntu 18.04を前提とする
- OpenJDK 11 (on Ubuntu on WSL)
- Visual Studio Code(1.41.x) (on Windows)
- Remote Develop利用(←重要)
WSLのインストール
普段からLinuxやMacOSを使っている人なら、Windows10でWSLを使うのは当たり前だよね?
公式手順に従ってWSLを有効化し、Ubuntu(18.04)をインストール。
OpenJDKのインストール
Windowsではなく、UbuntuにOpenJDKをインストールする。
今回はver11を利用したが、お好きなバージョンをどうぞ。
WSLのターミナルからaptでインストールすればOK。
$ sudo apt update
$ sudo apt install -y openjdk-11-jdk
VSCodeのインストール
公式サイトからUbuntu版ではなくWindows版のVSCodeをインストールする。
code
コマンドで起動できるようにするためのPATH設定に再起動が必要なので、インストール後にWindowsを再起動する。
WSLのUbuntu上にUbuntu版のVSCodeをインストールするとX-Windowを表示しないと使えないので、今回その方法は採用しない。
拡張機能のインストール
Remote Development
Windows側からWSL側にリモートして安全にファイル編集などができるプラグイン。
WSLだけで開発するなら「Remote WSL」だけでもいいが、「Remote Development」をインストールすると「Remote WSL」も合わせてインストールされ、WSLだけでなくSSH接続できる環境やDockerコンテナにもリモートできるらしい(試していない)。
この記事を書いた時にはなかった拡張機能だが、去年の夏ぐらいにリリースされた。おかげでもうVSCodeでできないことはないんじゃないかと思う。
Emacsのtramp機能と近いイメージ?。WSLでsshfsが使えるともっと便利になるんだが…。
手順としては、「Remote Development」をインストール後、一度VSCodeを終了し、WSLのUbuntuから code
コマンドを実行すると使えるようになる。(初回は起動に時間がかかる)
gradleで作成するサンプルプロジェクトを例にすると(詳細は以前の記事を参照)
$ mkdir sample
$ cd sample
$ gradle init --type java-application
$ code .
Installing VS Code Server for ... ←これが表示されたら起動するまで待つ
Windowsファイアウォールの許可設定などが表示される場合は許可する。
これでWindows版のVSCodeのウィンドウが開き、WSL上で作成したJavaのプロジェクトを開発できる。
Java Extension Pack
以前の記事と同じくインストールする。インストール時に「install on WSL」をクリックして、WSL側にインストールしないと有効にならないので注意。
その他にも必要に応じてgitやgraldeなどのプラグインも検索してインストールするといい。
実行
VSCodeのターミナルもWSLのシェルになっているはず。
ctrl + shift + `
でVSCodeのターミナルエリアから任意のコマンドを実行して動作確認できる。
$ gralde run
tasks.json
やlaunch.json
を設定するともっと便利になるのだが、詳細は各プラグインのマニュアルを参照してほしい。
さいごに
VSCodeではなく、VS2019でも同様にWSLやSSHサーバにリモートして開発できるみたい。
一昔前はDLLとか.NetとかのMicrosoft言語でしか開発できない場面以外でWindowsを使う気にはなれなかったのだが、最近はそんなこと全然ない。すごい進歩だ。
もうすぐ(2020年4月?)「Windows Terminal」がリリースされるらしいので、まだまだ開発しやすさが増していく気がしてならない。