Не удалось найти или загрузить основной класс Java? Вот как это исправить!

Не удалось найти или загрузить основной класс Java? Вот как это исправить!

Если вы по-прежнему получаете ошибку «основной класс не найден» в вашем Java-проекте без видимой причины, не волнуйтесь, вы не одиноки.





Как одна из самых непредвиденных и спонтанных ошибок, благодаря тенденции JVM (виртуальная машина Java) придерживаться пути к классам по умолчанию, проблема «основной класс не найден» - это то, что преследует как любителей, так и профессионалов.





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





Почему не был найден основной класс?

Прежде чем мы попытаемся понять, как и почему JVM не смогла найти основной класс, нам нужно понять концепцию Путь к классам в Java.

Что такое Classpath?

Путь к классам - это путь к файлу, по которому среда выполнения Java ищет классы и другие файлы ресурсов. Его можно установить с помощью -classpath опция при выполнении программы или при настройке системы КЛАСС переменная окружения.



Как следует из названия, это просто путь к файлу, в котором .класс файлы можно найти в пакете или каталоге JDK.

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





На этом этапе, если вы хотите освежить память о классах Java, ознакомьтесь с нашим руководством для создание классов на Java .

реклама Google продолжает появляться на моем телефоне

Использование пакетов

Давайте создадим класс под названием Тестовое задание . Поместите его в пакет под названием testPackage . Пакеты используются в Java для того, чтобы сгруппировать похожие классы вместе или предоставить уникальное пространство имен для классов.





В этом простом примере использование пакета поможет вам наглядно представить, как работает путь к классам Java. В вашем приложении файлового менеджера пакет представлен как независимая папка.

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

Теперь откройте новый терминал и убедитесь, что ваш рабочий каталог совпадает с тем, который содержит папку пакета. Вы можете изменить рабочий каталог, используя CD команда в любой операционной системе.

Компилировать Test.java выполнив следующую команду:

package testPackage;
javac testPackage/Test.java

Это сохранит скомпилированный двоичный файл (файл .class) в testPackage.

Чтобы запустить скомпилированный класс, вам нужно ввести полное имя класса в командной строке. Полное имя класса Java относится к его имени с префиксом имени пакета. В этом случае это должно выглядеть примерно так:

java testPackage.Test

Этот способ вызова файлов классов также гарантирует, что вы можете вызывать исполняемые файлы из разных пакетов из одного и того же рабочего каталога. Все, что вам нужно сделать, это изменить полное имя класса.

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

Указание пути к классам вручную

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

Обычно каталог с исходными файлами обозначается как src а тот, у которого есть файлы .class, помечен как классы. Это также способ гарантировать, что вероятность того, что JVM не найдет основной класс, значительно снижается благодаря правильно структурированному каталогу.

Если мы воспользуемся этим методом, то структура каталогов будет выглядеть перед компиляцией так:

Windows 10 продолжает отключение Wi-Fi
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Каждый отступ на приведенном выше рисунке соответствует одному уровню файловой иерархии, которому должен следовать ваш проект.

Чтобы скомпилировать это, убедитесь, что ваш рабочий каталог - myFolder. Теперь введите следующую команду:

javac -d classes src/testPackage/Test.java

В .класс исполняемый файл должен быть сохранен в myFolder / классы / testPackage . Соответственно, структура файловых каталогов выглядит примерно так:

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

Чтобы запустить .класс файл, запустите команду Java с полным именем класса и укажите локальный путь к классам. Каждый путь объявляется относительно рабочего каталога, которым в данном случае является myFolder.

java -classpath classes testPackage

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

Важность организации файлов в Java

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

Самый простой способ устранить эту ошибку - указать, где хранятся файлы .class, и явно указать JVM искать там. Это стало возможным благодаря раздельной организации исходных и исполняемых файлов и управлению всем из рабочего каталога.

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

Чтобы узнать больше о том, как classpath работает в Java, и о многочисленных вещах, которыми вы можете управлять, когда дело доходит до запуска вашего кода, вы также можете взглянуть на Oracle подробный и удобный справочник .

Делиться Делиться Твитнуть Эл. адрес 10 лучших проектов для начинающих программистов

Хотите научиться программированию, но не знаете, с чего начать? Эти проекты и руководства по программированию для начинающих начнут вас.

Могу ли я зарядить свой ноутбук через USB?
Читать далее Похожие темы
  • Программирование
  • Джава
Об авторе Яш Челлани(Опубликовано 10 статей)

Яш - амбициозный студент, изучающий информатику, любит создавать вещи и писать обо всем, что связано с технологиями. В свободное время он любит играть в сквош, читать последнюю версию Мураками и охотиться на драконов в Скайриме.

Ещё от Yash Chellani

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться