Eclipse не может найти/загрузить основной класс
My Eclipse (Indigo) работает нормально. Я создал простой класс Hello
. Он помещается в пакет cont
в папку ch13
. Однако, когда я пытаюсь запустить его из Eclipse, я получаю информацию от La Virtual Machine Launcher:
Could not find the main class: cont.Hello.
Я попытался запустить другие классы из этого пакета, и они работают просто отлично (это классы, которые существовали там раньше). Однако любой новый класс, который я создаю в этом пакете, имеет эти проблемы. Фактически любой новый класс, который я создаю в Eclipse, сталкивается с этими проблемами. Я решил проверить, как это работает из командной строки. Кажется, что проблема все еще существует - я получаю такую же ошибку. Я проверил путь, и это C:\Program Files\Java\jdk1.7.0_02\bin
, что является правильным (обратите внимание, что другие классы работают с Eclipse просто отлично). Я попытался работать с java -cp . Hello
и появились некоторые ошибки, начиная с java.lang.NoClassDefFoundError: Hello (wrong name: cont/Hello)
. Сам код прост:
package cont;
public class Hello {
public static void main(String[] args){
System.out.println("Hello");
}
}
Как я могу исправить это, чтобы мои классы все еще выполнялись в Eclipse?
Ответы
Ответ 1
.metadata
поврежден.
Шаги:
ПРИМЕЧАНИЕ PLS: Использование этого метода означает, что вы также потеряете свои проекты и плагины. Вам нужно будет установить их снова и снова.
Ответ 2
-
Удаление конфигурации запуска
Иногда у меня есть аналогичные проблемы в некоторых предварительных версиях eclipse. Чтобы исправить ошибку, я удаляю Запустить конфигурацию. Вы можете найти это в меню Выполнить, Запустить конфигурации...
Затем я запускаю приложение с Alt + Shift + X, затем J. Если это не работает, Ctrl + F11.
-
Удаление каталога .metadata
По-другому, параметры конфигурации для вашей текущей рабочей области могут быть повреждены. Эти настройки находятся в каталоге .metadata
в текущей рабочей области 1. В этом случае нет другого выбора, кроме удаления каталога:
- Закрыть eclipse.
- Удалите каталог
.metadata
.
- Запустите eclipse.
- Импортировать проекты.
- Запустите проект еще раз.
Примечания
- Вы увидите этот каталог с Файл > Рабочее пространство переключателя > Другое...
Ответ 3
Я решил проблему следующим образом:
Перейдите в раздел "Запустить конфигурацию" (щелкните правой кнопкой мыши файл Java- > Run- > Run Configuration).
Перейдите на вкладку ClassPath:
Нажмите "Дополнительно" → "Добавить папки" → Добавить каталог bin (который имеет в нем файл класса для исходного кода Java)
Запустите код, теперь он решит проблему. Это сработало для меня
Ответ 4
У вас должна быть основная функция в вашем классе. Как
public class MyDataBase {
public static void main(String args[]) {
}
}
Ответ 5
У меня была такая же проблема в проекте Maven. После создания папки src/test/java в проекте ошибка исчезла.
Ответ 6
Еще один совет: я инициализировал статические поля в неправильном порядке - неожиданно это не вызвало проблему (NullPointerException?), вместо этого Eclipse жаловался именно на сообщение OP. Исправление статического инициализационного порядка заставило класс работать. Пример:
private static ScriptEngineManager factory = null;
private static ScriptEngine engine = null;
static {
engine = factory.getEngineByName("JavaScript");
// factory is supposed to initialize FIRST
factory = new ScriptEngineManager();
}
Ответ 7
Переименование основного класса должно быть достаточно (и проще):
- Перейдите в свой класс и установите курсор на имя своего класса.
- ALT + Shift + R и переименуйте класс (постройте, если не сделать автоматически);
- Теперь вы сможете запустить его,
- переименуйте класс в старое имя, если хотите;
Ответ 8
проблема
Это также может быть вызвано проблемой Java Build Path.
В моем случае у меня была ошибка:
A cycle was detected in the build path of project {project}. The cycle consists of projects {x, y, z}.
Это может произойти при включении других проектов в путь сборки проекта, который вы хотите запустить. На самом деле, все проекты не смогут работать с ошибкой. Could not find the main class: Example.class
Решение
открыто
Windows
→ Preferences
→ Java
→ Compiler
→ Building
→ Build Path Problems
Снимите Abort build when build path errors occur
Это похоже на банку червей, если вы закончите с другими ошибками пути сборки. Поэтому используйте с осторожностью.
- Примечание. Это работает, только если у вас есть "ошибка цикла". Это сообщение об ошибке можно найти на вкладке "Маркеры"
Я нашел решение для этого здесь
Информация
- Java 1.8.0_152
- Eclipse Photon (июнь 2018 года)
Ответ 9
Переместите файл в подкаталог с именем cont
Ответ 10
Стандартные шаги по устранению неполадок для Eclipse должны включать удаление и повторное импортирование проекта в какой-то момент, когда я справился с этой ошибкой.
Ответ 11
Я решил проблему, выполнив следующие действия:
- вырезать весь основной (CTRL X) из класса (всего на несколько секунд),
- сохранить файл класса (CTRL S)
- вставьте главную спину точно в одно и то же место (CTRL V)
Странно, что он снова начал работать после этого.
Ответ 12
В большинстве случаев и в моем случае есть только недостающая библиотека. Поэтому убедитесь, что ваш проект включает все зависящие библиотеки (например, в pom.xml, если вы используете maven), даже если ваш класс не использует их!
Ответ 13
В каталоге lib можно добавить 2 groovy -xxx-all.jar файла. что приложение не работает
Ответ 14
У меня была та же проблема, это мое решение:
- Я вручную удалил папку bin проекта
- Затем я обновил проект, который перекомпилировал весь проект и создал новый bin со всеми .class файлами.
Я сделал это, потому что когда я выполнил Clean (project- > clean), мои .class файлы не удалялись. вышеупомянутое решение работает для меня, надеюсь, что оно полезно для других.
Ответ 15
У меня была та же проблема. Я решил с помощью следующей команды maven:
mvn eclipse: eclipse -Dwtpversion = 2.0
PS: Мой проект - плагин WTP
Ответ 16
Если вы используете предопределенную конфигурацию запуска, перейдите в путь к классам и попробуйте "Восстановить записи по умолчанию". Это перенастроит путь к этой конфигурации.
Ответ 17
Я нашел способ исправить эту проблему, чтобы переименовать проект. Если вы дадите ему имя со странными символами (в моем случае:), у него возникнут проблемы с поиском вашего класса. Я не знаю, относится ли это правило к номерам, но попробуйте переименовать проект или создать новый и скопировать файлы. Назовите его без каких-либо цифр или специальных символов.
Ответ 18
Это сработало для меня наконец:
RUN → КОНФИГУРАЦИИ RUN → УДАЛЕНИЕ КОНФИГУРАЦИИ RUN
ЗАКРЫТЬ ECLIPSE
REOPEN ECLIPSE
СОЗДАЙТЕ КОНФИГУРАЦИЮ RUN.
Тадаааа!! Он работает
Ответ 19
Я решил эту ошибку, закрыв проект, удалив его из затмения и затем импортировав его снова.
Может быть немного проще, чем переделать всю настройку рабочей области.