Виправлення: Не вдалося знайти або завантажити основний клас

Помилка " Не вдалося знайти або завантажити основний клас " виникає під час використання команди Java у командному рядку для запуску програми Java, вказавши назву класу в терміналі. Причина, чому це відбувається, здебільшого пов’язана з помилкою програмування користувача під час оголошення класу.

Не вдалося знайти або завантажити основний клас у командному рядку Java

Як вже згадувалося раніше, ця помилка здебільшого не пов'язана з системою, і користувач допускає помилку в декількох сценаріях, як показано нижче. Перш ніж рухатися вперед, ми припускаємо, що ви володієте базовими знаннями мови програмування Java та її роботи.

Що спричиняє помилку "Не вдалося знайти або завантажити основний клас" у Java?

Повідомлення "Не вдалося знайти або завантажити основний клас" означає, що перший крок механізму Java, який отримує клас для виконання, не вдався. Команда java не змогла знайти клас у правильному каталозі.

У деяких випадках потрібно додати правильний шлях до файлу та вказати термінал Java у правильному розташуванні. Оскільки ви виконуєте команду з терміналу командного рядка, комп'ютер не знає, де клас можна знайти або де він знаходиться. У цільових IDE це не проблема, оскільки IDE тримає вказівник, що вказує на поточний робочий каталог.

Що таке синтаксис Java?

Перш ніж розпочати усунення несправностей, чому термінал повертає нам помилку при спробі виконати, спочатку нам потрібно розглянути синтаксис команди. Якщо ви не використовуєте правильний синтаксис, ви неминуче зіткнетеся з цією помилкою.

Звичайний синтаксис команди приблизно такий:

 java [...] [...]

Ось параметр командного рядка, це повністю кваліфіковане ім'я класу Java і аргумент командного рядка, який передається у вашу програму, коли весь пакет скомпільований.

Прикладом дійсної команди є:

java -Xmx100m com.acme.example.ListAppuals кевін стрілки барт

Вищевказана команда змусить команду Java виконувати такі операції:

  • Він буде шукати скомпільовану версію класу ' com.acme.example.ListAppuals '.
  • Після пошуку він завантажить клас.
  • Далі, коли клас завантажується, у класі буде здійснюватися пошук методу 'main' з дійсним підписом, модифікаторами та типом повернення. Прикладом основного класу може бути щось на зразок:
public static void main (Рядок [])
  • Метод буде викликаний з аргументами 'кевін', 'стрілки' та 'барт' у вигляді рядка [].

Як виправити "Не вдалося знайти або завантажити основний клас"

Рішення 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:> set 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 / local / acme / classes / com / acme / example

Ви також повинні перевірити свій підкаталог і перевірити, чи відповідає він 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 / місцеві / Acme / класи / кому / Acme / приклад /

Тоді мали б місце такі сценарії:

# неправильно, потрібне FQN java Appuals # неправильно, у поточному робочому каталозі java com.acme.example немає папки `com / acme / example`. Appals # неправильно, подібне до сценарію 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, він, ймовірно, повідомить вас про проблему. Однак у нашому випадку, оскільки ми запускаємо її в командному рядку, помилка залишиться непоміченою, і ви отримаєте обговорювану помилку класу.