/
Вопросы и ответы
/
Java
/

Что значит ошибка Could not find or load main class при запуске Java

Что значит ошибка Could not find or load main class при запуске Java

Файл Main.java компилируется без ошибок (javac Main.java) и в папке появляется Main.class. Почему Java не находит класс и как правильно его запустить?

8 дней назад

Nikolai Gagarinov

Ответы

0

Чаще всего эта ошибка возникает из-за несоответствия имени файла и класса, либо из-за того, что текущая директория указана неправильно при запуске.

Основные моменты:

Имя файла и класса должны совпадать

В Java имя файла должно совпадать с именем публичного класса, содержащего метод main. Например:

// файл Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

Если класс называется HelloWorld, то файл должен называться HelloWorld.java, а запускать нужно java HelloWorld.

Текущая директория

При запуске через java Main JVM ищет Main.class в текущей директории (.). Если вы находитесь не в той папке, где лежит .class файл, появится ошибка.

Пример правильного запуска:

cd путь_к_папке_с_классом
javac Main.java
java Main

Не используйте лишние параметры -classpath без необходимости

Для классов в текущей папке достаточно:

java -cp . Main

Проверка содержимого файла

Убедитесь, что файл содержит корректный main метод и имя класса совпадает с именем файла.

Если все соблюдено, ошибка исчезает. На Windows иногда проблемы могут возникать из-за прав доступа к папке (например, C:\Windows\System32 лучше не использовать для разработки), поэтому стоит работать в пользовательской директории, например C:\Users\<имя>\Projects.

8 дней назад

Nikolai Gagarinov