-
Java開発環境をVisual Studio Code で整える
- 2018年6月1日
- Java
- VisualStudioCode
- 2020/08/12 更新:vscode-java 0.65.0 から Java 11 が必須となった ため、一部修正しました。
Java の開発で使われるIDEには といったものが主流のようですが、ある言語だけ別物の環境で開発することに筆者は少し抵抗がありました。1 2 Java を扱うプロジェクトにジョインするとき、最近流行りの Visual Studio Code(以下 VS Code )は対応してないのか? と少し調べたところ、ここ最近で対応が進んだようで無事セットアップできました。さくさく開発できるので気に入ってます。 今回はそのセットアップ手順を紹介します。
この記事で書くこと
- Java 開発における VS Code の設定
- 必要な拡張機能のインストール
- 設定ファイルの書き方
この記事で書かないこと
- VS Code のインストール方法
- インストールするだけなら特にスムーズにできるかと思うので、ダウンロードリンクを記載する程度に留めておきます。
環境
macOS High Sierra 10.13 で動作を確認しています。Visual Studio Code
2015 年に発表されて3 以来爆発的な開発が進められているエディタです。Github を見るとコミット数が 2018/05/28 時点で 33,000 を超えており、1 日あたり 30 コミット以上されている計算です。4 VS Code は単なるエディタとしてだけではなく、コンソールの起動やデバッグなど、IDE としても十分な機能が提供されています。 VS Code の設定や機能拡張は主に- JSON 形式で記述された設定ファイルの編集
- 拡張機能の導入
拡張機能インストール
まず拡張機能をインストールします。 VS Code を起動し、[⌘ + Shift + X](Mac)、もしくは[Ctrl + Shift + X](Windows, Linux)から拡張機能を検索できます。 「java」と入力すると「Java Extension Pack」がヒットするので、この拡張機能をインストールしてください。 Java Extension Pack は下記の拡張機能がパッケージになっており同時にインストールされます。- Language Support for Java(TM) by Red Hat
- Debugger for Java
- Java Test Runner
- Maven Project Explorer
- Maven for Java
- Spring Boot Extension Pack
設定
JDK の設定
VS Code に JDK の場所を教えます。 まず環境変数JAVA_HOME
の値を確認しましょう。Mac か Linux で Bash を利用しているなら下記コマンドで確認できるはずです。
env | grep JAVA
$ JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
です。5
Windows のコマンドプロンプト6 なら下記コマンドで確認できます。
>set | findstr JAVA
環境変数JAVA_HOME
を確認できたら、 VS Code 上で [⌘ + ,] (Mac)もしくは [Ctrl + ,] ( Windows, Linux )を押下して設定を開きます。
入力欄から設定項目を検索できるので「javahome」と入力すると、「java.home」の設定が見つかります。「java.home」の左側に出るペンのアイコンをクリックし、「設定にコピー」をクリックすると、設定ファイル settings.json へ編集可能な設定がコピーされるので、先程確認した環境変数 JAVA_HOME
の値を設定します。
2020/08/12 追記
vscode-java 0.65.0 よりjava.configuration.runtimes
設定によって、JDK バージョンごとの設定が可能になりました。
こちら を参考に設定してください。下記は例です。
"java.configuration.runtimes": [
{"name": "JavaSE-1.8",
"path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk",
"default": true // デフォルト指定
,
}
{"name": "JavaSE-11",
"path": "/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk",
,
}, ]
Lombok の導入
Java の開発では Lombok を導入することも多い 7 と思うので使えるようにしておきます。 まず下記から最新版の lombok.jar をダウンロードしましょう。 https://projectlombok.org/download 適当なフォルダへ lombok.jar を配置し、VS Code で lombok.jar を利用したプログラムの参照依存が解決ができるよう設定を行います。8 先程の settings.json に下記設定を追加してください。9{
"java.jdt.ls.vmargs": "-javaagent:/path/to/lombok.jar"
}
/path/to/
の部分は lombok.jar を配置したファイルパスに置き換えてください。
ファイルパスに空白が含まれる場合は下記のように、パス全体をエスケープ付きのダブルクォートで囲みましょう。
{
"java.jdt.ls.vmargs": "-javaagent:\"/spaced path/to/lombok.jar\""
}
ビルドタスクの設定
ビルドの設定はプロジェクトのあるディレクトリ毎に行います。 まずプロジェクトのあるディレクトリを VS Code で開きます。 VS Code が起動済ならメニューの「ファイル」から「開く…」をクリックし、 プロジェクトのあるディレクトリを選択してください。code
コマンド10 を導入していれば、 code {ディレクトリのパス}
でも開くことができます。
ビルドの仕方を VS Code へ設定するにはメニューから「タスク」をクリックし、「タスクの構成」を選びます。 初めて設定する場合は、「テンプレートから tasks.json を生成」と出てくるのでそれをクリックし、続けて表示されるビルド設定のテンプレートから任意のものを選びます。
今回は「 Others 」を選択し、手動でビルドの設定をします。
するとディレクトリに .vscode/tasks.json が作成されてファイルが開かれた状態になりますので、このファイルにビルドの設定をしていきます。
今回は単純に maven を使ったビルド mvn compile
だけ行うビルドタスクを作成してみます。
下記のサンプルのように、label
の値を build
に、 command
の値を mvn compile
へ変更します。
{// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{"label": "build",
"type": "shell",
"command": "mvn compile"
}
] }
label
に設定した値が各タスクの名前に対応しています。
デバッガ実行環境の設定
次にデバッグを行うための設定を追加します。 メニューから「デバッグ」→「構成の追加…」を選択すると、ワークスペースに .vscode/launch.json が作成されます。 プロジェクト中ですでにmain
メソッドをもつクラスがあれば、VS Code は自動で launch.json を設定してくれます。 必要に応じて構成を追加したり、実行時の引数や環境変数などを設定しましょう。
構成のサンプルを示します。
{"version": "0.2.0",
"configurations": [
{"type": "java",
"name": "Debug (Launch) with Arguments Prompt",
"request": "launch",
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopOnEntry": false,
"mainClass": "entry.mainApp",
"args": "--hoge-arg tititata",
"env": {
"ENV1": "hogehoge",
"ENV2": "foobar",
,
},
}
] }
main
メソッドのあるクラスを mainClass
に、 実行時に渡したい引数は args
、実行時の環境変数を env
で指定します。
name
はデバッガ起動時にどの構成で起動するかを選択する際に表示される名前に相当します(下の画像)。
デバッガの画面を開くには [⌘ + Shift + D] (Mac)もしくは[Ctrl + Shift + D] (Windows, Linux)を押すか、左のバーにある虫のアイコンをクリックしてください。
ここまで設定できたら、起動したいデバッグ構成を選択して緑の三角ボタンを押せば、プログラムとデバッガが起動します。
その他
お気づきの方もいるとは思いますが、 .vscode/{tasks,launch}.json はただのテキストファイルなので、これをそのままコピーすれば同様の構成を他プロジェクトで使いまわすことができます。 また、 Git リポジトリに含めておけばgit clone
してビルドからデバッグまで、環境構築用のドキュメントなど使わずともそれぞれ同じ構成で開発ができるので楽ちんですね。
それではよき Java 開発ライフを。
- Eclipse、NetBeans は Java 以外の一部開発にも対応しています。↩︎
- 筆者が一番好きなIDE(というかエディタ)はVim一択です。↩︎
- https://blogs.msdn.microsoft.com/visualstudio/2015/04/29/build-2015-news-visual-studio-code-visual-studio-2015-rc-team-foundation-server-2015-rc-visual-studio-2013-update-5↩︎
- Github 上の vscode リポジトリはリリースされている VS Code のベースとはなっているもののライセンスを含め別物です。( https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005 )↩︎
- 2020/08/12 追記:vscode-java 0.65.0 より Java 11 のインストールが必須となりました。各バージョンの OpenJDK は こちら からダウンロードできます。↩︎
- 筆者は「 Windows キー押下 → [cmd] と入力 → Enter 」と操作して起動するのが鉄板です。↩︎
- Lombok は setter や getter といったいわゆる「ボイラープレートコード」を自動付与してビルドしてくれるライブラリです。↩︎
- https://github.com/redhat-developer/vscode-java/wiki/Lombok-support↩︎
- 2020/08/12 追記:古いバージョンの Java では
-Xbootclasspath/a:/path/to/lombok.jar
といったオプション指定が必要でしたが、vscode-java 0.65.0 から Java 11 のインストールが必須となった関係で、実質的に不要です。(このオプションを指定するとエラーになります)↩︎ - [⌘ + Shift + P] (Mac)か[Ctrl + Shift + P](Windows、Linux)でコマンドパレットを開き、「shell」と検索すると「Shell Command: Install ‘code’ command in PATH」と出るので、それをクリックすることでインストールできます。↩︎
この記事を書いた人 : 上田直諒
スタッフブログタグ:
AWS bluebird css CSV docker docker compose electron ES6 es2015 Git Heroku ITコンサルティング JavaScript justinmind less MongoDB Node.js php PostgreSQL Private Space Promise React react-router reactjs Salesforce scss Selenium Builder selenium IDE Selenium WebDriver stylus TypeScript VirtualBox VisualStudioCode vue vuejs webpack システム開発プロジェクト セキュリティ ワイヤーフレーム 上流工程 卒FIT 帳票 要件定義 設計 電力小売業界
一覧へ戻る
AWS bluebird css CSV docker docker compose electron ES6 es2015 Git Heroku ITコンサルティング JavaScript justinmind less MongoDB Node.js php PostgreSQL Private Space Promise React react-router reactjs Salesforce scss Selenium Builder selenium IDE Selenium WebDriver stylus TypeScript VirtualBox VisualStudioCode vue vuejs webpack システム開発プロジェクト セキュリティ ワイヤーフレーム 上流工程 卒FIT 帳票 要件定義 設計 電力小売業界