Eclipse "Ошибка: не удалось найти или загрузить основной класс"

У меня есть проект в eclipse на моем ноутбуке, который я нажал на Git https://github.com/chrisbramm/LastFM-History-Graph.git

Он полностью работает на моем ноутбуке и запускает/строит без проблем, но на моем рабочем столе Eclipse не сообщает об ошибке

Ошибка: не удалось найти или загрузить основной класс lastfmhistoryguis.InputPanel

Я попытался создать проект из:

Project>Build Project

Но ничего не произошло. Я установил переменные PATH на этом компьютере JRE6, JRE7 и JDK 1.7.0, хотя они не установлены на моем ноутбуке.

У меня был Jar файл (last.fm-bindings-0.1.1.jar), который был в моем .classpath файле, который находился в папке C:\Users\Chris\Downloads на моем поэтому он не был включен в дерево Git, которое я недавно внес в папку проекта и зафиксировал, но я не уверен, правильно ли я сделал это. Это также вызовет проблему, но там нет главного аргумента.

Теперь я не могу разобраться, что мне нужно проверить/изменить.

Ответ 1

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

В вашем пути к классу вы должны (и, возможно, вообще, если вы собираетесь связать JARS с вашим проектом), используйте относительный путь:

В вашем .classpath изменить

<classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/><classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/>

to

<classpathentry kind="lib" path="last.fm-bindings-0.1.1.jar"/>

Ответ 2

Если вы создаете Java-класс с public static void main(String[] args), Eclipse запустит этот основной метод для вас, щелкнув правой кнопкой мыши на самом файле или на файле в проводнике проекта, затем выбрав:

"Run As" → "Java Application."

Как только вы это сделаете, Eclipse сохранит информацию о вашем классе, так что вы сможете легко запустить класс снова из меню "Запуск от имени" (зеленая кнопка воспроизведения на панели инструментов) или из диалогового окна "Выполнить конфигурации".

Если впоследствии вы ПЕРЕМЕЩАЕТЕ класс java (вручную или, тем не менее), снова выберите

"Run As" → "Java Application,"

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


РЕШЕНИЕ:
Для меня исправление состояло в том, чтобы перейти к настройкам запуска (Зеленая кнопка воспроизведения → Запустить настройки) и удалить все ссылки на класс. В следующий раз, когда вы запустите

"Run As" → "Java Application"

Eclipse напишет новую конфигурацию для перемещенного класса, и ошибка исчезнет.

Ответ 3

TL;DR: Очистите весь путь сборки и все, что вы когда-либо добавляли к нему вручную. Сюда входят дополнительные источники, проекты, библиотеки.

  • Проект → Очистка
  • Убедитесь, что Project → Build автоматически активен.
  • Проект → Свойства → Путь сборки Java → Библиотеки: Удалите все внешние библиотеки, которые вы когда-либо добавляли. Не удаляйте стандартные библиотеки, такие как JRE System Library.
  • Попробуйте запустить основной класс сейчас. Ошибка "class not found/load" должна исчезнуть. Попробуйте добавить свои внешние библиотеки/банки один за другим.

Причина этого: у компилятора были проблемы с связыванием библиотек с проектом. Он провалился и вызвал неправильное сообщение об ошибке.

В моем случае это должно было быть что-то вроде "Не удалось добавить AutoHotkey.dll в путь сборки", потому что именно это и скомпрометировало компилятор.


Если это еще не работает, посмотрите на встроенный ErrorLog Eclipse:

Окно → Показать вид → Общие → Журнал ошибок

Ответ 4

Я сделал все вещи, упомянутые выше, но ни одна из них не сработала для меня

Моя проблема решена следующим образом:

  1. Щелкните правой кнопкой мыши на Project> Properties> JavaBuildPath> Libraries.
  2. Удалите файл фляги, на котором есть красный флаг.
  3. Если проблема не устранена, попробуйте решение ниже. Это сработало для меня, когда я столкнулся с этой проблемой во второй раз:
    1. Щелкните правой кнопкой мыши Проект> Свойства> Путь сборки Java> Библиотеки
    2. Удалить библиотеку
    3. Добавить библиотеку. (Выберите системную библиотеку JRE)

Ответ 5

У меня возникла аналогичная проблема в моем проекте maven webapp после того, как я провел около часа, я нашел решение, которое сработало для меня. Я набрал следующую команду maven и работал

mvn clean install -U
Я не знаю точной причины этого.

Ответ 6

Я предполагаю, что вы импортировали проект в установку eclipse на рабочем столе? Если это так, вы должны просто выбрать "Проект" > "Очистить". Затем перестройте свой проект. Работала как прелесть для меня.

Ответ 7

У меня была такая же проблема и я решил ее использовать:

Eclipse Mars
Egit
Github
Maven Project

Проблема заключалась в том, что я сделал мой проект maven доступным для github. Он переместил мой проект в мою папку github.

Решение:

  • Закрыть Eclipse
  • Удалить папку метаданных внутри вашей рабочей области
  • Перезапуск Eclipse

Будет отображен начальный экран.

  • Закройте начальный экран
  • Rightclick в проводнике пакетов
  • Выберите "import maven project",
  • Перейдите в папку github и импортируйте проект maven.

После этого мой проект скомпилирован с успехом.

Ответ 8

Убедитесь, что у вашего проекта есть построитель:

  • проверить свойства проекта (в "проводнике пакетов", щелкнуть правой кнопкой мыши по проекту, выбрать "свойства" ), там второй раздел "Builders", и он должен содержать по умолчанию "Java Builder"
  • или посмотрите в файле .project(в.../workspace/yourProjectName/.project) раздел "buildSpec" не должен быть пустым.

Должны быть другие способы, но я сделал это:

  • закрыть eclipse
  • отредактируйте файл. "project", чтобы добавить раздел "buildSpec"
  • перезапустить eclipse

Собственный минимальный java файл .project должен выглядеть так:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>myProjectName</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.jdt.core.javabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>       
                    <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>      
</projectDescription>

Ответ 9

Ну, для меня это работало...

  • Зашел в папку проекта (внутри workspace)
  • Затем удалите папку bin
  • Затем, очищенный проект/проекты (в Eclipse)
  • построено/запущено из Eclipse.

Ответ 10

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

Попробуйте выполнить проект свойствa > Путь сборки Java > вкладка "Заказ и экспорт" > выберите все (или попробуйте сыграть с флажками).

Это должно привести к полной перестройке проекта и Eclipse, чтобы увидеть основной класс.

Дополнение: Я заметил, что эта ошибка возникает, когда у вас много проектов в рабочем пространстве, а некоторые из них настроены неправильно (появляется красный восклицательный знак). Исправлена ​​ошибка, связанная с созданием пути создания проекта и другими настройками (даже если этот проект не связан с тем, с которым у вас возникли проблемы). Исправить проблему.

Ответ 11

У меня была эта ошибка. Это было потому, что я static void main(String[] args)
вместо public static void main(String[] args)

Я потратил почти час, пытаясь понять это.

Примечание: Единственное отличие состоит в том, что я не объявлял main public

Ответ 12

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

Ответ 13

Если вы используете eclipse, следующие шаги помогут решить вашу проблему:

Перейдите в Run → Run Configurations → Main Class Search → Найдите свой класс вручную → Apply → Run

Ответ 14

My Main class не удалось найти или загрузить проблему вызвана интересной причиной.

В нашем проекте мы используем Maven как инструмент сборки и мой класс Main class extends a, который находится на class path, но его область действия test, а Main class не находится под тестовый пакет.

Если ваш основной класс extends класс, сначала попробуйте запустить Main class, удалив часть extends. Если он работает, вы, по крайней мере, поймете, что проблема связана не с run configuration или eclipse, а с классом, Main class extends.

Ответ 15

Если ваш код хорош, и вы знаете, что у вас проблема Eclipse, это решит его.

Вы можете просто удалить $yourproject/.classpath, $yourproject/.project и $yourworkspace/. metadata. Кто-то еще упомянул этот вариант. Тем не менее, это повредит ваше рабочее пространство. Вместо этого:

  • Удалить .classpath и .project из вашего проекта
  • Удалить проект в затмении. НЕ проверять удалить проект содержимое на диске.
  • Теперь в проводнике файлов перейдите в $yourworkspace/.metadata.
  • Найти $yourprojectname
  • Удалите все, что найдете. Это должно быть безопасно удалить все в каталоге .metadata.
  • В eclipse: Файл > Импорт > Общие > Проекты из папки или архивa > $yourproject > finish
  • Щелкните правой кнопкой мыши ваш проект > свойствa > Путь сборки Java > вкладка Источник
  • Выберите все исходные папки, удалите.
  • Добавить папку, выберите src (независимо от вашей папки src) и добавьте ее
  • Перейдите на вкладку библиотек
  • Добавьте все банки в свой путь сборки. Теперь не должно быть больше ошибок в вашем проекте.
  • Запустите проект, как обычно.

Ответ 16

Я столкнулся с той же проблемой, но в моем случае она была вызвана отсутствующей (пустой) исходной папкой (она существует в исходном проекте, но не в репозитории GIT, потому что она пуста).

После создания отсутствующей папки все работает.

Ответ 17

Я тоже получил эту ошибку, сразу после перемещения некоторых ресурсов. Проверяя журнал ошибок, я увидел, что Eclipse не смог создать сборку, так как не удалось удалить файл/папку. Попробуйте вручную удалить папку "bin" (или все, что она вам назвала).

Это помогло, по крайней мере.

Ответ 18

Сегодня я столкнулся с этой ошибкой, потому что создал глобальную программу Hello, а затем вырезал и вставлял новую программу в тот же файл. Чтобы устранить проблему не найти мир hello, поскольку последний был вызван, я нажал Run- > Run Configurations, а затем в Main Class я щелкнул поиск и нашел новое имя класса и заменил его на правильное новое имя в тексте, который я вставил, Это проблема новичков, которую я знаю, но ее также легко исправить. Я надеюсь, что это помогает кому-то! Дуглас

Ответ 19

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

Поскольку это проект Maven, все, что я сделал, это:

  • mvn eclipse: clean
  • удалить проект eclipse
  • импортировать проект
  • сделано

надеюсь, что это поможет!

Ответ 20

Просто зайдите в свой проводник пакетов и нажмите F5 или на некоторые ноутбуки fn + F5. Причина в том, что eclipse считает, что файлы находятся где-то, но файлы на самом деле находятся где-то в другом месте. Обновив его, вы поместите их на одну страницу. Не беспокойтесь, вы ничего не потеряете, но если вы хотите быть более осторожным, просто создайте резервные копии файлов из папки проектов java в безопасном месте.

Ответ 21

Это простые шаги, которые помогли мне решить эту проблему.

  • Закройте eclipse
  • Удалить папку ".metadata" в рабочем пространстве. (может быть скрытой папкой)
  • Откройте eclipse (он автоматически создаст папку ".metadata" в вашем рабочем пространстве)
  • Попробуйте запустить программу.

Ответ 22

Чтобы устранить эту ошибку, выполните следующие действия:

Шаг 1: Откройте файл .project.

Шаг 2: Проверьте два тега...

    a) <buildSpec>

    b) <natures>

Шаг 3: Если вышеупомянутые теги не содержат никакого контента, то наверняка произойдет вышеуказанная ошибка.

Шаг 4: Добавьте следующее содержимое к каждому тегу, чтобы устранить вышеуказанную ошибку.

Для <buildSpec>:

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

Для <natures>:

<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

Шаг 5: Сохраните ваш файл, нажав Ctrl + S.

Шаг 6: В целях безопасности просто закройте проект и снова откройте его.

Шаг 7: Вот и все. Вы готовы к рок!

Пожалуйста, укажите в комментариях, если решение было полезным.

Спасибо.

Ответ 23

Проверьте журнал ошибок рабочей области (Windows-> Показать представление → Журнал ошибок). Если вы видите, что какой-либо импортированный jar файл поврежден, удалите соответствующую папку репозитория и повторите импорт.

Ответ 24

2 вида решений выходят за одно и то же.

(1) Перейдите для запуска конфигураций: - run-> запустить конфигурации На вкладке Classpath:

Выберите Advanced Add, где Eclipse обычно помещает *.class для проектов, который находится в bin. Поэтому я добавил каталог bin для проекта.

(2) Если первое решение не работает, то это означает, что банка, на которую вы указываете своему проекту, идет по пути вашего локального репозитория Maven, который не обновляется в вашем проекте, поэтому лучше проверять банку из этого локального репозитория Maven и скопируйте его, просто вставьте в новый проект или просто загрузите его с любого сайта и настройте по своему пути сборки.

Я надеюсь, что это помогает.

Ответ 25

это может вызвать библиотеки JDK, если вы импортировали в JRE

это случилось со мной, так что проверьте установленные JRE банки

в eclipse щелкните Windows> "Установки"> "Java"> "Установленные Jres"> щелкните "Jre" и отредактируйте его после просмотра списка jar, чтобы убедиться, что ни один из них не содержит jdk или поврежден, enter image description here

Ответ 26

У меня была та же проблема. Прошло несколько часов и, наконец, сменило мое рабочее пространство на локальную папку, и теперь все работает. Может быть, это сэкономит время для других. Джон

Ответ 27

В основном это происходит, потому что Eclipse очищает файлы .class, но не создает их снова. Проверьте папку bin, она должна быть пустой. Затем вы должны проверить, есть ли что-нибудь еще, что вызывает сбои сборки ti. Возможно, вы добавили несколько банок в путь к классам, которые Eclipse, возможно, не сможет найти.

Ответ 28

У меня возникла эта проблема после первой проблемы с Windows 8, отказывающейся обновлять мой путь, независимо от того, что я установил JAVA_HOME - java -version сообщила о последнем JDK вместо того, который я сохранил в JAVA_HOME. Я, наконец, получил это для работы, поставив '% JAVA_HOME%/bin;' в начале переменной окружения, а не в конце. Затем я запустил Eclipse, и внезапно он не смог найти мой основной класс, когда он работал нормально до этого. То, что я сделал, чтобы исправить это, попало в свойства проекта, удалило существующую библиотеку JRE со вкладки библиотек, добавило новую JRE, выбирая кнопку "Добавить библиотеку", а затем следуя подсказкам для установки JRE 7 в качестве моей JRE по умолчанию. Теперь все возвращается к работе.

Ответ 29

В моем случае я нашел другое решение: Eclipse->Preferences->Java->Installed JRE, затем нажмите кнопку "Поиск". Выберите папку в Linux /usr, затем Eclipse найдет все JVM.

Выберите другой JVM слишком текущий. Это решение для моего случая.

Ответ 30

У меня была такая же проблема после того, как я создал новый пакет ( "таблицы" ) в моем проекте.

Я пошел в Window -> Show View -> General -> Error Log и Ive прочитал ошибку:

JavaBuilder handling ImageBuilderInternalException while building: PizzaService

org.eclipse.core.internal.resources.ResourceException: Resource '/PizzaService/bin/tables' already exists.

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

Надеюсь, что это поможет.