Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Visual Studio CodeでJavaを書いてみる

この記事は「Visual Studio Code Advent Calendar 2017」の7日目の記事です。

昨日は@74thさんの「Visual Studio Codeの各言語、環境のデバッグの仕方を集めたサイトを作ってる」でした。
明日は@Maxfield_Walkerさんです。

私からは「Visual Studio CodeでJavaを書いてみた話」をしたいと思います。

なんでVisual Studio CodeでJava書くの?

Javaのコードを書くとき、通常であればIntelliJ IDEAEclipseNetBeansなどのIDE(統合開発環境)を使います。コード補完やJavaDoc、ビルド、ユニットテストなど、様々な機能と周辺ツールを利用可能で、効率良く開発ができるためです。

私はJava EE開発をやっていたので、ずっとNetBeansをメインに使ってきたのですが、最近Visual Studio CodeでJavaを書く機会が増えてます。そのきっかけは11/24に参加した「Spring Fest 2017」でRed Hatの方がデモにVisual Studio Code使っていたのを見たためです。

そのときは「へー、Visual Studio CodeでJava書けるんだ」ぐらいの印象だったのですが、実際に使ってみたところ「軽い!」と動作のサクサク感に感動しました。

私が普段利用してるノートPCはVAIO Duo13という少し古い機種ではありますが、インテル Core i7-4650U (1.70 GHz)・メモリ8G・SSDでそこまで悪いSpecではありません。それでもNetBeansの起動は少し遅く感じます。

ちょっとしたお試しコードであればサクッとVisual Studio Codeで書いて動かす、というのは1つの選択肢になるのではないかなと思います。

Visual Studio Codeとは?

Visual Studio Code Advent Calendarなので、今さら書く必要がないと思いますが、Java方面だと名前は知ってるけど触ったことない、という方もいらっしゃる可能性があるため少しだけ触れておきます。

Visual Studio Codeは2015年にMicrosoftがリリースしたエディタです。Visual Studioという名前からWindowsでの動作をイメージを浮かべてしまいがちですが、Windows、Linux、macOSのプラットフォームで動くエディタであるのが特徴です。また、拡張機能(Extensions)は種類が豊富で開発も盛んです。
marketplace.visualstudio.com

f:id:kikutaro777:20171126023412p:plain

Visual Studio Code x Java

Visual Studio Codeを使ってJavaを書いてみようと思った方は一度公式サイトのドキュメントを参照ください。
code.visualstudio.com

以下、簡単に紹介します。

Java Extension Pack

Java Extension Packという拡張機能がMicrosoftから提供されています。基本的にはこちらをインストールするだけでOKです。
marketplace.visualstudio.com
f:id:kikutaro777:20171126023905p:plain

依存関係をみると以下の2つがあって、Red HatとMicrosoftが提供元となっています

Dukeかわいい。
f:id:kikutaro777:20171207005226p:plain

なんでテントウムシなんだろう…。J2SE 1.3.1のコードネームがLadybird=テントウムシらしいけど、それなのかな…。
f:id:kikutaro777:20171207005329p:plain

この2つはJava Extension Packをインストールすれば自動的にインストールされます。

Java Test Runner

12月1日にVisual Studio CodeがJUnitに対応したというアナウンスがありました。(ただしJUnit4)
blogs.msdn.microsoft.com

早速Publickeyで日本語記事になっていましたね。
www.publickey1.jp

こんな感じで今後もJavaに関連した拡張が増えていくと嬉しいなぁ。

実行結果

以下の簡単な例を試す手順をまとめます。(Mavenは入ってる前提)

  • Java Extension Pack x Spring Boot
  • Java Test Runner
Java Extension Pack x Spring Boot

Spring InitializrでWebのDependencyだけ入れたプロジェクトを落として解凍します。
f:id:kikutaro777:20171207011057p:plain

Visual Studio Codeの「ファイル」メニューから「フォルダーを開く」を選択し、解凍したフォルダを指定します。
f:id:kikutaro777:20171207011209p:plain

f:id:kikutaro777:20171207011438p:plain

開きました。
f:id:kikutaro777:20171207011548p:plain

「デバッグ」メニューから「デバッグの開始」を選びます。(F5キーを押してもよいです)
f:id:kikutaro777:20171207011754p:plain

すると環境の選択メニューが表示されるので「Java」を選びます。
f:id:kikutaro777:20171207012044p:plain

暫く待つと、launch.jsonが自動生成されるので必要なパラメータを指定します。今回はportの部分を空文字から8080に変更しました。
f:id:kikutaro777:20171207012242p:plain

再度「デバッグの開始」(またはF5)を実行すると、無事にSpring Bootのロゴが表示されてアプリケーションが実行されました。
f:id:kikutaro777:20171207012436p:plain

こんな感じで非常に簡単です。

Java Test Runner

こちらも簡単で、JUnitのテストコードを書くと下図のようにテストメソッドの上に「Run Test」「Debug Test」が表示されます。Debug Testはブレークポイントを置いてテストコードをデバッグできる実行方法です。
f:id:kikutaro777:20171207014436p:plain

右側のチェックマークやバツマークはテストの成功可否を表します。

その他機能

最低限の機能は揃ってます。

コード補完
f:id:kikutaro777:20171207014846p:plain

インポートの補助
f:id:kikutaro777:20171207012755p:plain

JavaDocのツールチップ表示&Help表示
f:id:kikutaro777:20171207013613p:plain

ウォッチ式
f:id:kikutaro777:20171207013929p:plain

定義への移動や
f:id:kikutaro777:20171207014935p:plain

参照の検索
f:id:kikutaro777:20171207015031p:plain

ステップイン・ステップアウト・ステップオーバー
f:id:kikutaro777:20171207015143p:plain

まだまだ機能的に足りない点はあると思いますが、ちょっとしたJavaコードを書く場合などには軽量でサクッと動くVisual Studio Codeを利用するのもありではないかなと思います。Visual Studio CodeはLinuxでもMacでも動くので、Java開発者の方は是非お試しください。

最後にVisual Studio Codeと全然関係ないのですが、来月以下のイベントを開催するので、興味がある方は是非ご参加ください!!
sendgrid.kke.co.jp

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村