30
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VSCode Java Debugger for Java Build failed 原因と対策

Posted at

Visual Studio Code でJavaのデバッグがしたい話

キャプチャ.PNG
image.png

Debugger for Java Build failedになってしまう

sampleコード

設定等はこちらを参考にさせていただきました
Visual Studio Code を使った Javaプログラム事始め

test.java
public class test {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++)
            sayHello();
    }

    private static void sayHello() {
        System.out.println("こんにちは世界!");
    }
}

最初は上手くいくが
2回目以降VSCodeを開き直してもう一度実行するとエラーを履いてdebugができない事象に遭遇

VSCode Java Debugger for Java Build failed エラー

キャプチャ.PNG

これ。

デバッグコンソールには

エラー: メイン・クラスtestが見つからなかったかロードできませんでした

ってでてくる。

image.png

「java メイン・クラス が見つからなかったかロードできませんでした」
「VS code Debugger for Java Build failed」
とかでググると
パスが間違っているのが原因と多くの記事に書いてある。
しかしこんなシンプルなソースでしかも1回目はうまくいくのに意味不明である。

原因

VSCodeのワークスペースが問題。
VSCodeで[ファイル]->[フォルダーを開く]から
test.javaがあるフォルダを指定するとなぜかワークスペースは一つ階層が上がった場所になる。:sweat_smile::sweat_smile::sweat_smile:

debugの際にVScodeはlaunch.jsonを参照するが自動で作成されるものはこれ

{
	// IntelliSense を使用して利用可能な属性を学べます。
	// 既存の属性の説明をホバーして表示します。
	// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
	"version": "0.2.0",
	"configurations": [
		{
			"type": "java",
			"name": "Debug (Launch)",
			"request": "launch",
			"cwd": "${workspaceFolder}",
			"console": "internalConsole",
			"stopOnEntry": false,
			"mainClass": "",
			"args": ""
		},
		{
			"type": "java",
			"name": "Debug (Launch)-test",
			"request": "launch",
			"cwd": "${workspaceFolder}",
			"console": "internalConsole",
			"stopOnEntry": false,
			"mainClass": "test",
			"args": ""
		},
		{
			"type": "java",
			"name": "Debug (Attach)",
			"request": "attach",
			"hostName": "localhost",
			"port": "<debug port of remote debuggee>"
		}
	]
}

"cwd": "${workspaceFolder}"
こいつがあるのでワークスペースを参照してtest.javaを探しに行くが
[ファイル]->[フォルダーを開く]という動作を行うとワークスペースが一つ上の階層にあるためそんなものはない。:head_bandage:
よって
エラー: メイン・クラスtestが見つからなかったかロードできませんでした
となる。

対策

対策としてはワークスペースの場所をtest.javaがある場所にすれば良い
[ファイル]->[名前をつけてワークスペースを保存]
ここから適当な名前をつけて保存
.code-workspace
ができるので次回からは
[ファイル]->[ワークスペースを開く]
からこのファイルを開けばOK

なんで[ファイル]->[フォルダーを開く]をすると
ワークスペースが一つ階層が上がるのかはわからなかった。
どこか設定があるのかもしれない:thinking:

30
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?