2010-03-29 2 views
18

Я успешно реализовал и провел несколько учебников Scala в Eclipse с помощью плагина Scala. И вдруг я пытался скомпилировать и запустить пример, и пришел данная ошибка:noClassDefFoundError с помощью Scala Plugin для Eclipse

Exception in thread "main" java.lang.NoClassDefFoundError: hello/HelloWorld 
Caused by: java.lang.ClassNotFoundException: hello.HelloWorld 
at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:315) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:250) 
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398) 

После этого момента я больше не мог запускать любые программы Scala в Eclipse. Я попробовал очистить и восстановить свой проект, закрыть и снова открыть мой проект, а также закрыть и снова открыть Eclipse.

Eclipse, номер версии 3.5.2 и Scala плагин 2.8.0

Вот исходный код:

package hello 

object HelloWorld { 
def main(args: Array[String]){ 
    println("hello world") 
} 
} 
+0

Есть ли файл HelloWorld.class внутри $ PROJECT/bin/hello? (Вы можете использовать «Навигатор» для проверки). –

ответ

10

Если вы видите это, когда вы пытаетесь запустить как приложение Scala, то, скорее всего, Объяснение заключается в том, что ваш проект не компилировался и файлы классов не были сгенерированы. Проверьте, действительно ли это: посмотрите в выходной папке вашего проекта для hello/HelloWorld.class.

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

+0

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

+0

Для меня казалось, что Run Configurations каким-то образом были повреждены или не установлены правильно, но я нашел «решение» - см. Ниже –

+1

У меня была такая же проблема: HelloWorld $ .class был в выходной папке, но не HelloWorld. класс. Очистка решила проблему. – thSoft

2

При запуске «clean» не отсоединяет Eclipse, я попробую сохранить мою работу, выйти из Eclipse и снова запустить. Обычно это происходит снова, но не всегда. Несколько раз мне приходилось обновлять плагин Scala более поздней версией (я использую последнюю ночную), чтобы снова работать. Я сомневаюсь, что это сработало, потому что новый плагин, чтобы исправить ошибку, а скорее ожидаем, что загрузка нового плагина дает системе Eclipse-Scala «полный сброс», который получает его неактивным.

3

У меня была та же проблема. Проект не компилируется, но нет ошибок, и AFAIK код в порядке. Кажется, что проблема с Run Configurations.

Решение 1: Удалите существующую конфигурацию Run для вашего объекта и создать новую один

Решение 2: Создать новый объект и вырезать/вставить весь код в этот файл

0

I переместил мой один и только класс/объект/приложение в пакет, но не добавил декларацию package.

sbt составлен и запущен отлично; eclipse не будет

Добавление декларации package в верхней части файла исправлено.

Scala 2.8.3 плагин; no compile error

1

Я получал эту проблему в проекте, который комбинировал файлы .java & .scala. Решение для меня было:

  1. Удалить все файлы .java
  2. Отредактируйте код Scala в случае необходимости, так что компилируется без них.
  3. Добавить .java файлы.
  4. Редактировать код scala назад.

Другие приведенные здесь решения не помогли мне. Я попробовал: очистить проект, перезапустить Eclipse, закрыть - & - открыть проект, создав новый .scala-файл. Нет радости.

Я использую Eclipse 3.7 (последняя стабильная версия), Scala IDE 2.0.0 и Scala 2.9 на Ubuntu Linux 11.10.

симптомы в моем случае были:

  • Мой проект был работает, но потом он перестал компиляции без видимых причин. В IDE не было обнаружено ошибок компиляции для .scala-файлов, но в выходном каталоге не было файлов .class. & У меня есть NoClassDefError, если я пытался что-то запустить.
  • Если я создал преднамеренную ошибку в файле .scala, это было воспринято как ошибка компиляции.
  • . Файлы .java регистрировали ошибки из-за недостающих классов scala.

Я полагаю, что в плагине IDE есть, вероятно, ошибка, связанная с загрузкой, для микширования .java/.scala. Я делал гибридные проекты с этой установкой без проблем, так что это срабатывает только в некоторых ситуациях. Я не знаю, что такое триггер, но после его запуска нет хорошего решения.

0

Я тоже столкнулся с этой ошибкой, но после внесения предложений здесь (очистка, удаление Run Configuration и т. Д.) Я понял, что неправильно настроил рабочую область, поэтому класс не найден.

Указание на то, что это проблема, когда возникает одна и та же ошибка при попытке скомпилировать проект java.

0

Я столкнулся с этой ошибкой (компиляция работала в sbt, но с ошибкой в ​​eclipse), когда я создал новый объект пакета, называемый «общим». Удаление объекта пакета в eclipse вызвало ошибку компиляции. В этом ничего не было.

Я использовал sbt-eclipse для создания проекта eclipse. Я использую scala eclipse 3.0.0-vfinal-20130326-1146-Typesafe.

Смежные вопросы