VSCode Java Debugger for Java Build failed 원인 및 대책

5696 단어 debug자바VSCode

Visual Studio Code에서 Java를 디버깅하고 싶은 이야기






Debugger for Java Build failed가 되어 버린다

샘플 코드



설정 등은 이쪽을 참고로 했습니다
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 오류





이것.

디버그 콘솔에는
エラー: メイン・クラスtestが見つからなかったかロードできませんでした

라고 나온다.



"java 메인 클래스를 찾을 수 없거나로드 할 수 없습니다."
VS code Debugger for Java Build failed
어쨌든 구그
경로가 잘못되어 있기 때문에 많은 기사에 썼습니다.
그러나 이런 심플한 소스로 게다가 1회째는 잘 되는데 의미 불명하다.

원인



VSCode 작업 공간이 문제.
VSCode에서 [파일] -> [폴더 열기]에서
test.java가 있는 폴더를 지정하면 왠지 작업 공간은 하나 계층이 오른 곳이 된다.

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를 찾으러 갈 것입니다.
[파일]->[폴더 열기]라는 동작을 하면 작업공간이 하나 위의 계층에 있기 때문에 그런 것은 없다.
따라서
오류 : 메인 클래스 테스트를 찾을 수 없거나로드 할 수 없습니다.
된다.

대책



대책으로서는 작업 공간의 장소를 test.java가 있는 장소로 하면 좋다
[파일]->[다른 이름으로 작업공간 저장]
여기에서 적당한 이름으로 저장
.code-workspace
수 있기 때문에 다음 번부터
[파일]->[작업공간 열기]
에서 이 파일을 열면 OK

왜 [파일]->[폴더 열기]를 하면
작업 공간이 하나 계층이 오르는지는 몰랐다.
어딘가에 설정이있을 수 있습니다

좋은 웹페이지 즐겨찾기