Я не понимаю как java vscode компилирует код

Рейтинг: 1Ответов: 1Опубликовано: 31.07.2025

К примеру существует базовый hello.java

package main;

public class Hello {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
    
}

При запуске программы через "Run Java" в терминале появляется команда:

c:; cd 'c:\Users\User\VStudioPorjects\gifPlayer'; & 'C:\Program Files\Java\jdk-23\bin\java.exe' '@C:\Users\User\AppData\Local\Temp\cp_f33lbunljpn3p0z2sckzifkts.argfile' 'main.Hello'

Где cd 'c:\Users\User\VStudioPorjects\gifPlayer' - это указание пути проекта

& - запуск в фоновом режиме

'C:\Program Files\Java\jdk-23\bin\java.exe' - путь к файлу запускающему уже скомпилированный класс

'@C:\Users\User\AppData\Local\Temp\cp_f33lbunljpn3p0z2sckzifkts.argfile' - подгон всех существющих библиотек

'main.Hello' - класс с директорией

Как происходит компиляция? Где javac? Почему при первом запуске класса создается файл Hello.class, но при его удалении и повторном запуске файл не создается повторно, а выходит ошибка java.lang.ClassNotFoundException: main.Hello?

ps: java.autobuild у меня отключен

Ответы

▲ 0

Расширение Java (из Java Extension Pack) автоматически вызывает компиляцию (javac), даже если java.autobuild отключён.

Если вы удалили .class и запускаете снова:

VS Code не перекомпилирует код, потому что: java.autobuild отключён → автоматическая компиляция не срабатывает. Запуск (Run Java) пытается сразу выполнить java main.Hello, но не находит .class → ошибка ClassNotFoundException.