it-swarm.com.ru

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

У меня есть проект в 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 на моем ноутбуке, следовательно он не был включен в дерево мерзавцев, которое я недавно принес в папку проекта и подтвердил, но я не уверен, правильно ли я это сделал .. Это также может вызвать проблемы, но нет основной аргумент там.

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

87
Chris

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

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

В вашем .classpath Change 

<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=""/>

в 

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

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

«Запуск от имени» -> «Приложение Java».

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

Если вы впоследствии переместите класс Java (вручную или, тем не менее), затем снова выберите 

«Запуск от имени» -> «Приложение Java»

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


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

«Запуск от имени» -> «Приложение Java» 

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

61
Blamkin86

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

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

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

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


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

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

43
Blauhirn

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

Моя проблема решена с помощью ниже.

Щелкните правой кнопкой мыши ваш проект >> свойства >> JavaBuildPath >> библиотеки.

Удалите банку с красным флагом.

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

щелкните правой кнопкой мыши проект >> Свойства >> Путь сборки Java >> Библиотеки, Удалить и Добавить библиотеку. (Выберите системную библиотеку JRE)

17
Atul Chavan

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

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

13
rajeev pani..

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

9
Cris CodeCruncher

У меня была та же проблема, и я решил ее с помощью:

Eclipse Mars
Egit
Github
Maven Project

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

Решение:  

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

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

  • Закройте стартовый экран
  • Щелкните правой кнопкой мыши в проводнике пакетов.
  • Выбрал «Импортировать Maven Project»,
  • Перейдите в папку github и импортируйте проект maven. 

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

7
Matthis Kohli

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

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

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

  • выключить Затмение
  • отредактируйте файл. "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>
6
loic.jaouen

Ну, у меня сработало следующее ...

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

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

Попробуйте перейти в проект свойства> Java Build Path> вкладка «Порядок и экспорт»> выбрать все (или попробуйте поиграть с флажками там).

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

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

4
Dmitry Avgustis

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

Выберите «Выполнить» -> «Выполнить настройки» -> «Поиск основного класса» -> найдите свой класс вручную -> «Применить» -> «Выполнить».

3
user4115825

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

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

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

3
Ad Infinitum

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

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

  1. Удалите .classpath и .project из вашего проекта
  2. Удалите свой проект в Eclipse. НЕ проверять удалить проект Содержимое на диске.
  3. Теперь в проводнике перейдите в $ yourworkspace/.metadata.
  4. Поиск $ yourprojectname
  5. Удалите все, что найдете. Должно быть безопасно удалить что-либо в каталоге .metadata.
  6. В Eclipse: Файл> Импорт> Общие> Проекты из папки или архива> $ yourproject> finish
  7. Щелкните правой кнопкой мыши ваш проект> свойства> Java Build Path> вкладка Source
  8. Выберите все исходные папки, удалите. 
  9. Добавьте папку, выберите src (как называется ваша папка src) и добавьте ее
  10. Перейти на вкладку библиотеки
  11. Добавьте любые банки в ваш путь сборки здесь. В вашем проекте больше не должно быть ошибок.
  12. Запустите свой проект, как обычно.
3
Brent Sandstrom

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

3
Stavros Stefanakakis

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

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

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

3
Alex Spencer

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

2
Raman

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

2
Douglas E Knapp

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

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

2
nothrem

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

Шаг 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: Вот и все. Вы готовы к рок!

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

Спасибо.

2
Nishat Lakhani

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

  1. Закройте Затмение
  2. Удалите папку «.metadata» в вашем рабочем пространстве. (может быть скрытая папка)
  3. Откройте Eclipse (он автоматически создаст папку «.metadata» в вашем рабочем пространстве)
  4. Попробуйте запустить программу.
2
Soham Darji

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

2
Steve Lam

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

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

2
Zar

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

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

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

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

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

2
navis1692

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

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

  1. mvn Eclipse: чистый
  2. удалить проект Eclipse
  3. импортировать проект
  4. сделанный

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

2
karl li

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

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

1
Karol Preiskorn

Эта проблема возникла у меня, когда я удалил файл «.jar» из проекта Eclipse, щелкнув по нему правой кнопкой мыши и нажав «удалить» (а не из «Путь сборки»).

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

1- Щелкните правой кнопкой мыши на проекте

2- Путь сборки -> Настройка пути сборки

3- Библиотеки

4- Удалите файл с банкой оттуда (рядом с ним я вижу красную метку). 

Я надеюсь, что это полезно.

1
Alisa

Следуйте инструкциям, которые мне подходят: 1.Удалите Настройка пути сборки из Eclipse (Build Path) 2.Refresh 3.Добавьте конфигурацию пути сборки-> Source-> add Folder-> check src ok ,.

1
Mohasin Mujawar

Я использовал кислород Eclipse, и проблема сохраняется каждый раз. Позже я обнаружил, что если ваше рабочее пространство Eclipse находится в каталоге с символами, отличными от ascii, то каким-то образом javaw.exe не может добраться до каталога bin. Предположим, что ваше имя каталога - Work_Hello, знак удаления подчеркивания, очистка проекта и запуск конфигурации. Это сработало для меня . Ссылка: https://www.Eclipse.org/forums/index.php/t/1093209/

1
Piyush

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

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

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

1
user889030

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

1
knowledge flow

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

Причина:
Вы знаете, поскольку мы люди, мы действительно ленивые существа, и поэтому у нас есть опция «Выбрать все», а также горячие клавиши для выполнения этого…. Поэтому, когда мне нужно добавить около 30+ jar-файлов для приложение, необходимое для создания PDF, я пошел по этому пути,

Щелкните правой кнопкой мыши Project -> Properties -> Java Build Path

  • выбрав в нем вкладку «Библиотеки», затем Add JARs ... », просматривая дерево каталогов и (мои файлы JAR и файлы licence.txt находились в папке проектов lib) в папке« lib », Я выбрал все файлы и добавил. Можете ли вы угадать, что было неправильно? Он успешно добавил все файлы в папку "lib". Но Eclipse продолжает пытаться исповедовать любой из текстовых файлов. Вы, возможно, добавили как файл JAR, таким образом, поэтому он не может создавать ссылки. Это так.

Итак, у вас есть два варианта:

  1. Выбирайте только файлы JAR, где хотите, и не поленитесь добавить текст и другие типы файлов. или же,

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

Заметка:
Если вы добавили какой-либо из файлов, не являющихся JAR, в проект таким образом, когда пытались добавить «библиотеки», он покажет вам что-то вроде следующего:

 enter image description here

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

Ошибка: не удалось найти или загрузить основной класс er.waterapp.some.MainFileGivenByConfigaration

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

Так вот оно что !!! Надеюсь, у меня был шанс помочь кому-то там, а также сэкономить ему много времени. :-)

Ура,
Randika

1
Randika Vishman

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

1
Howard Roark

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

1
user1362446

Произошло со мной, когда я сменил установленные JRE на JDK7 вместо JRE7. Все скомпилировано, но я не смог ничего запустить из Eclipse "Eclipse-error-can-not-find-or-load-main-class"

Fix; возвращаясь к предыдущему JRE7.

1
Vortex

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

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

JavaBuilder handling ImageBuilderInternalException while building: PizzaService

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

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

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

1
Tomasz Mularczyk

У меня была такая же проблема с Eclipse-Mars. У меня был рабочий проект, а затем поместил его в мой репозиторий Git. Это прервало выполнение (я думаю, потому что реальные файлы Java были перемещены в папку git и больше не существовали в моей рабочей области). Я сделал Maven> Обновление, и теперь оно работает.

1
AixNPanes

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

1
user3687451

Я потратил десятки часов, пытаясь решить эту проблему, и в конце концов мне только помогло заметить, что в моих пакетах было несколько файлов (текстовых файлов) с одинаковыми именами, таких как TODO, README и IMPORTANT. Я просмотрел все пакеты моего проекта, переименовывая эти файлы (например, TODO_packagename1, TODO_packagename2 ...), и когда закончил, я закрыл Eclipse и перезапустил его снова. Тогда сработало!

1
Paul Efford

Переименуйте класс с помощью Ctrl + Shift + R (Windows), он изменит имя класса везде, где на него ссылаются, а затем выполните противоположную процедуру. В моем случае это было вызвано одинаковыми именами классов в нескольких проектах в среде, и Eclipse было трудно понять, что есть что.

1
Nikolay Frick

У меня была очень странная причина этой ошибки. Некоторые файлы, указанные в локальном репозитории Maven (~/.m2/...), были повреждены. После их удаления и повторной сборки приложения все заработало. Использование более новой версии Maven выявило поврежденные файлы.

0
Mr. Mundkowsky

Я закончил тем, что сделал в Eclipse, скопировал весь проект и вставил его снова (и, конечно, дал ему другое имя). Затем запустите ваш скопированный проект. Следует спросить, хотите ли вы, чтобы он работал как Java-апплет или как Java-приложение. Нажмите на Java-приложение, и оно должно снова заработать. Затем вы можете удалить исходный проект и переименовать текущий проект в его первоначальное имя, если хотите.

0
user5910225

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

0
user1813222

Я пробежал похожие проблемы в моем небольшом фрагменте Java

Вот что я сделал.

  1. Я скопировал весь контент в Главном классе.

  2. Удалил основной класс Greeter.

  3. Щелкните правой кнопкой мыши -> Создан новый класс Java с именем Greeter.

    a> проверенный метод include main при создании класса

  4. вуаля !!! Я смог запустить приложение Java, щелкнув правой кнопкой мыши по основному классу Greeter.Java.

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

0
spacedev