noClassDefFoundError с использованием плагина Scala для Eclipse - PullRequest
18 голосов
/ 29 марта 2010

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

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")
 }
}

Ответы [ 7 ]

10 голосов
/ 29 марта 2010

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

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

3 голосов
/ 06 июня 2011

У меня была такая же проблема. Проект не компилируется, но ошибки не выделены, и AFAIK код в порядке. Кажется, это проблема с конфигурациями запуска.

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

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

2 голосов
/ 31 марта 2010

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

1 голос
/ 14 апреля 2012

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

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

Другие решения, приведенные здесь, не сработали для меня. Я попытался: очистить проект, перезапустить 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 голосов
/ 26 мая 2013

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

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

0 голосов
/ 04 мая 2012

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

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

0 голосов
/ 02 ноября 2011

Я переместил свой единственный класс / объект / приложение в пакет, но не добавил объявление package.

sbt скомпилировано и работает нормально; затмение не будет

Добавление объявления package в верхней части файла исправило его.

Плагин Scala 2.8.3; нет ошибки компиляции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...