VS Codeのlaunch.jsonでvmArgsをいい感じに設定する

VS CodeJavaアプリを開発していて困ったのでメモ。

 

 

[vmArgs多すぎ問題]

こんな感じで、JavaVM引数(vmArgs)の起動設定をlaunch.jsonに書いていた。

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Launch App (single line)",
            "request": "launch",
            "mainClass": "com.kdnakt.simple.App",
            "vmArgs": "-Dfoo=hoge1 -Dbar=fuga1",
            "projectName": "simple-project"
        }
    ]
}

 

しかし、VM引数の数が増えてきたので、横に長くなり、画面に収まらないという問題が発生した。

 

[vmArgsを配列で設定する]

vscode java launch.json vmargsとかでググってたら、このissueに辿り着いた。

github.com

 

vmArgsを配列で設定していたのが動かなくなった、というissueらしい。修正されているようなので、普通に真似して配列にすれば動きそう。

以下のように修正して試したら問題なく動作した。

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Launch App (array)",
            "request": "launch",
            "mainClass": "com.kdnakt.simple.App",
            "vmArgs": [
                "-Dfoo=hoge2",
                "-Dbar=fuga2",
            ],
            "projectName": "simple-project"
        }
    ]
}

 

そして、よく見たらちゃんと公式にも書いてある。

code.visualstudio.com

vmArgs - The extra options and system properties for the JVM (for example -Xms<size> -Xmx<size> -D<name>=<value>), it accepts a string or an array of string.

(強調は筆者)

 

だってVS Code上の説明では出てこなかったんだもん...(言い訳)。公式サイトと同じ説明を表示して欲しい。いつか余裕があったらプルリクエストを出しておこう...。

 

[まとめ]

  • VS Codeのlaunch.jsonのvmArgsは文字列または配列で設定できる
  • VM引数が増えた時は配列で設定しておくと見やすい
  • サンプルコードは以下のリポジトリにまとめてある

github.com