Подтвердить что ты не робот

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?

4b9b3361

Ответ 1

.metadata поврежден.

Шаги:

  • Остановить затмение, удалить метаданные в рабочей области и перезапустить eclipse

  • Импорт проекта

  • Запустить еще раз

ПРИМЕЧАНИЕ 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


Решение

открыто

WindowsPreferencesJavaCompilerBuildingBuild 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

Я решил эту ошибку, закрыв проект, удалив его из затмения и затем импортировав его снова.

Может быть немного проще, чем переделать всю настройку рабочей области.