Исправлено: не удалось найти или загрузить основной класс



Попробуйте наш инструмент устранения неполадок

Ошибка ' Не удалось найти или загрузить основной класс ’Происходит при использовании java-команды в командной строке для запуска Java-программы путем указания имени класса в терминале. Причина, по которой это происходит, в основном связана с ошибкой программирования пользователя при объявлении класса.



Не удалось найти или загрузить основной класс в командной строке Java

Не удалось найти или загрузить основной класс - командная строка Java



Как упоминалось ранее, эта ошибка в основном не связана с системой, и пользователь допускает ошибку в нескольких сценариях, как показано ниже. Прежде чем двигаться дальше, мы предполагаем, что у вас есть базовые знания о языке программирования Java и о том, как он работает.



Что вызывает ошибку «Не удалось найти или загрузить основной класс» в Java?

Сообщение «Не удалось найти или загрузить основной класс» означает, что первый шаг механизма Java, извлекающего класс для выполнения, не удался. В команда Java не мог найти класс в правильном каталоге.

В некоторых случаях вам нужно добавить правильный путь к файлу и укажите Java-терминал в правильном месте. Поскольку вы выполняете команду из терминала командной строки, компьютер не знает, где находится класс и где он находится. В целевых IDE это не проблема, поскольку IDE сохраняет указатель, указывающий на текущий рабочий каталог.

Что такое синтаксис «java»?

Прежде чем мы начнем устранять неполадки, по которым терминал возвращает нам ошибку при попытке выполнения, сначала нам нужно взглянуть на синтаксис команды. Если вы не используете правильный синтаксис, вы неизбежно столкнетесь с этой ошибкой.



Обычный синтаксис команды выглядит примерно так:

Ява [ ... ] [ ...]

Это параметр командной строки, это полное имя класса Java и аргумент командной строки, который передается вашему приложению при компиляции всего пакета.

Пример допустимой команды:

java -Xmx100m com.acme.example.ListAppuals Кевин Стрелок Барт

Приведенная выше команда заставит java-команду выполнить следующие операции:

  • Он будет искать скомпилированную версию класса ‘ com.acme.example.ListAppuals '.
  • После поиска он загрузит класс.
  • Затем, когда класс загружен, в классе будет выполняться поиск «основного» метода с действительной подписью, модификаторами и типом возвращаемого значения. Пример основного класса будет примерно таким:
public static void main (String [])
  • Метод будет вызываться с аргументами «kevin», «стрелки» и «bart» в виде строки [].

Как исправить ошибку 'Не удалось найти или загрузить основной класс'

Решение 1. Проверка аргумента имени класса

Самая распространенная ошибка пользователей заключается в том, что они указывают неправильное имя класса в качестве аргумента (или правильное имя класса имеет неправильную форму). Поскольку мы объявляем параметры в командной строке, весьма вероятно, что вы передадите аргумент имени класса в неправильной форме. Здесь мы перечислим все возможные сценарии, при которых можно ошибиться.

  • Написание простое имя класса . Если вы объявляете класс в пакете, таком как «com.acme.example», вы должны использовать полное имя класса включение пакета в команду Java.
java com.acme.example.ListAppuals

вместо

java ListAppuals
  • Вам следует объявить имя класса вместо объявления имени файла или пути. Java не получает класс, если вы объявляете для него путь / имя файла. Неверно записи включают следующее:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Кожух следует принимать во внимание. Команды Java чувствительны к регистру, и если вы ошиблись хотя бы одной буквой, вы не сможете загрузить основной класс. Пример неправильные ошибки находятся:
java com.acme.example.listappuals
  • Вы не следует объявить исходное имя файла . Как упоминалось ранее, вам нужно только объявить класс в правильном формате полного имени класса. Пример ошибки:
java ListAppuals.java
  • Эта ошибка также возникнет, если вы сделаете опечатка или же забудьте полностью написать имя класса .

Если вы допустили какие-либо небрежные ошибки при объявлении имени класса, обязательно исправьте их, а затем попробуйте запустить программу.

Решение 2. Проверка пути к классам

Если вы правильно объявили имя класса, но по-прежнему отображается ошибка, скорее всего, команда java не смогла найти указанное имя класса по пути. Путь к классам - это путь, по которому среда выполнения Java ищет файлы ресурсов и классов. Вы можете легко установить путь к классам, используя две разные команды, как показано ниже:

C:> sdkTool -classpath classpath1; classpath2 ... C:> установить CLASSPATH = classpath1; classpath2 ...

Чтобы получить больше информации о пути к классам, вам следует ознакомиться со следующими документами.

Документация по командам Java

Установка пути к классам

Решение 3. Проверка каталога

Когда вы объявляете каталог как путь к классам, он всегда будет соответствовать корню пространства имен. Например, если в пути к классам находится «/ usr / local / acme / classes», то Java будет искать класс «com.acme.example.Appuals». Он будет искать класс со следующим путем:

/usr/local/acme/classes/com/acme/example/Appuals.class

По сути, если вы укажете следующий адрес в пути к классам, Java не сможет найти класс:

/ USR / местные / acme / классы / ком / acme / пример

Вам также следует проверить свой подкаталог и посмотрите, соответствует ли он FQN. Если FQN вашего класса - «com.acme.example.Appuals», то Java будет искать «Appuals.class» в каталоге «com / acme / example».

В качестве примера представим следующий сценарий:

  • Класс, который вы хотите запустить: com.acme.example.Appuals
  • В полный путь к файлу это: /usr/local/acme/classes/com/acme/example/Appuals.class
  • В текущий рабочий каталог это: / usr / local / acme / classes / com / acme / example /

Тогда будут иметь место следующие сценарии:

# неверно, требуется FQN java Appuals # неверно, в текущем рабочем каталоге нет папки com / acme / example. java com.acme.example.Appuals # неверно, аналогично сценарию выше java -classpath. com.acme.example.Appuals # OK; устанавливается относительный путь к классам java -classpath ../../ .. com.acme.example.Appuals # OK; установлен абсолютный путь к классам java -classpath / usr / local / acme / classes com.acme.example.Appuals

Заметка: Путь к классам должен также включать все другие классы (несистемные), которые нужны вашим приложениям.

Решение 4. Проверка пакета класса

Если все вышеперечисленные решения верны в вашем случае, вам необходимо убедиться, что ваш исходный код помещен в правильную папку. Кроме того, вы правильно указали пакет . Если вы запустите свой код с IDE, он, вероятно, проинформирует вас о проблеме. Однако в нашем случае, поскольку мы запускаем его в командной строке, ошибка останется незамеченной, и вы получите обсуждаемую ошибку класса.

4 минуты на чтение