hakeの日記

Windows環境でプログラミングの勉強をしています。

Java - VS CodeでのJava実行環境

Visual Studioの重さから、VS Codeも重いんだろうなという思い込みでいたのだけれども、実際に使用したら結構軽いので驚いた。
本格的な開発ならeclipseの方が良いけれども、勉強にはこちらで十分。


前提

環境 Windows10 64bit
Java8をインストール済みでJavaのbinフォルダにパスが通っていること(コマンドプロンプトでJavacコマンドが使用できること)
今回は、jdk1.8.0_131をインストール済み。

VS Codeのインストール

Visual Studio Codeのページからダウンロードしてインストール


VS Code拡張機能をインストール

左側のメニューアイコン、または、Ctrl+Shift+Xで拡張機能を開いて以下をインストール

拡張機能 Language Support for Java(TM) by Red Hat のインストール

いろいろ機能があるのだろうけれども、まだよくわからない。とりあえずキーワード補完は便利。

拡張機能 Runnerのインストール

Ctrl+Shift+Rで、今開いているソースをコンパイルして実行してくれる。

Runnerの設定

コンパイル、実行するバッチファイルを登録する

  • Ctrl+,(カンマ)でsetting.jsonを開いてJava用のバッチファイルを右側のウィンドウに登録する。
{
    "runner.languageMap": {
        // パスの区切りは \ ではなく / である。
        // ソースファイルの拡張子と、実行するバッチファイルのパスを記述する。
        "java": "C:/VSCodeRunner/run_java.bat"
    }
}
  • バッチファイルrun_java.batの作成

基本的には、VSCodeの設定のとおり。
ただし、Javaのソースを実行するとShift-JISの文字コードを出力しますが、VSCodeの実行ウィンドウはutf-8のみ対応の様で文字化けするので、実行結果の出力を一旦nkfを通してutf-8コードに変換するように変更。

@echo off
setlocal
if "%~dpnx1" equ "" goto :eof
javac %~dpnx1
if %ERRORLEVEL% neq 0 goto :eof
java -cp %~dp1; %~n1 | C:\VSCodeRunner\nkf32.exe -w
endlocal

rem del "%~dpn1.class"

:eof
exit /b %ERRORLEVEL%

 vectorのページから入手したnkf32.exeをバッチファイルと同じ場所においておく。