はじめに
WindowsPCでJavaのコードを書く際には今までEclipseを利用していたのですが、流行りのVisualStudioCodeを入れて動かしてみました。
HelloWorld級のプログラムを動かすにしても、いくつか注意ポイントがあったので記事にしています。
環境情報
- Windows 10
- VS Code 1.42
- Java 11
Visual Stdui Code のインストール
以下を辿ってWinwdows10用のインストーラを取得します。今回は「VSCodeUserSetup-x64-1.42.0.exe」でした。
インストーラを起動すると、「Microsoft Visual Studio Code(User)セットアップ」という名のウインドウに以下項目が表示され
インストール先(\AppData\Local\Progurams\Microsoft VS Code)
プログラムグループ(Visual Studio Code)
追加タスク(PATHへの追加)
再起動するとPATHも反映されてメニューから起動できます。
ちなみにファイルの実体は以下にありました。
C:\Users\XX\AppData\Local\Programs\Microsoft VS Code\Code.exe
Java用の拡張を導入する
メニューにある「View -> Extensions」から「Java Extension Pack」をインストールします。
検索バーに入れると以下のような概要と共に表示されます。
Java Extension Pack is a collection of popular extensions that can help write, test and debug Java applications in Visual Studio Code.
以下のインストールボタンを押すとJavaの開発セットがVSCodeに取り込まれます。
Javaのパスを設定に反映させる
画面の歯車のとろこから「Setting」を選択して以下のように「java.home」と入れると以下のようにコンフィグファイルを編集するリンクが表示されます。
このファイルの実体は以下なので直接編集することも可能です
C:\Users\XX\AppData\Roaming\Code\User\settings.json
以下のようにJDKが置かれているパスを記載しますが
{ "java.home": "C:\\Program Files\\AdoptOpenJDK\\jdk-11.0.6.10-hotspot" }
場合によっては以下メッセージのようにエラーとなる場合があります。
The JAVA_HOME environment variable (C:\Program Files\XX) does not point to a JDK.
試行錯誤しましたが、指定したJavaのバージョンが古いこと(Java8でした)が問題と考えてJava OverViewの画面に表示されている以下から新バージョンをインストールしました。
今回は「OpenJDK11U-jdk_x64_windows_hotspot_11.0.6_10.msi」がインストーラとして以下画面のようにインストールを進めました。
このPATHを再設定するとエラーはなくなりました。
サンプルコードを動かす
「Ctrl+Shift+P」から「Java: Create Java Project」を選択してサンプルアプリを動かします。
プロジェクトディレクトリを作成するディレクトリを選択するとそのプロジェクトディレクトリ配下に以下のようなファイル群ができていました。
$ tree -a . ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── bin │ └── app │ └── App.class └── src └── app └── App.java
App.javaは以下で
package app; public class App { public static void main(String[] args) throws Exception { System.out.println("Hello Java"); } }
メニューから「Debug > Start Debugging」を押下すると以下のようなコマンドが走り
cd 'c:\Users\XX\Documents\JavaProject'; & 'C:\Users\XX\.vscode\extensions\vscjava.vscode-java-debug-0.24.0\scripts\launcher.bat' 'C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\bin\java' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\XX\Documents\JavaProject\bin' 'app.App'
所定の結果が出力されます。
Hello Java
ちなみに「JavaProject」を作成することにも意味があり、例えばテキストファイルにて.javaファイルを用意しても以下のようにエラーになりました。import文の処理等を自動でやってくれ
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
自動で作成された以下が効いているのかもしれません。
.classpath .project .settings
終わりに
Visual Stduio Code で Java を利用しよう という記事は多々ありますが
- PATHが通らずエラーとなる
- プロジェクトを作成しないとコンパイルに失敗する
を書いている記事がなかったので備忘録として残しておきます。
同様の事象で困っていた方の参考になれば幸いです。