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

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

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

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

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

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

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

Що таке синтаксис "java"?

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

Нормальний синтаксис команди приблизно такий:

 java [...] [...] 

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

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

 java -Xmx100m com.acme.example.ListAppuals kevin arrows bart 

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

  • Він буде шукати компільовану версію класу ' com.acme.example.ListAppuals '.
  • Після пошуку він завантажить клас.
  • Далі, коли клас завантажується, буде шуканий клас для основного методу з дійсним підписом, модифікаторами та типом повернення. Зразок основного класу буде приблизно таким:
 загальнодоступна статична недійсна головна (String []) 
  • Метод буде викликатися аргументами 'kevin', 'arrows' та 'bart' як string [].

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

Рішення 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 /lasses" знаходиться на класі, тоді Java буде шукати клас "com.acme.example.Appuals". Він шукатиме клас із такою назвою шляху:

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

Отже, по суті, якщо ви кладете таку адресу на classpath, Java не зможе знайти клас:

 / usr / local / acme / заняття / com / 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 / class / com / acme / example /

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

 # неправильно, FQN потрібен java Appuals # неправильно, у поточній робочій папці java com.acme.example.Appuals # неправильно, немає папки `com / acme / example`, неправильно, подібно до вищевказаного сценарію java -classpath. com.acme.example.Appuals # ОК; встановлено відносний класний шлях java -classpath ../../ .. com.acme.example.Appuals # OK; встановлено абсолютний класний шлях java -classpath / usr / local / acme / class com.acme.example.Appuals 

Примітка . Класовий шлях повинен також включати всі інші класи (несистемні), необхідні вашим програмам.

Рішення 4: Перевірка пакету класу

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

Цікаві Статті