Я успешно реализовал и выполнил несколько учебных руководств 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")
}
}
Если вы видите это при попытке запустить как приложение Scala, то наиболее вероятным объяснением является то, что ваш проект не компилировался и файлы классов не были сгенерированы . Пожалуйста, проверьте, так ли это: поищите hello / HelloWorld.class в выходной папке вашего проекта.
Если ваш проект не компилировался, это могло быть либо из-за ошибки, которую вы пропустили (и если эта ошибка не отображается в представлении «Проблемы», это может быть ошибкой, в этом случае откройте заявку on Trac) или потому, что вы отключили автоматическую сборку и не выполнили сборку своего проекта вручную.
Когда запуск "clean" не освобождает Eclipse, я пробую сохранить работу, выйти из Eclipse и снова запустить. Обычно это помогает, но не всегда. Несколько раз мне приходилось обновлять плагин Scala до более новой версии (я использую последнюю версию nightly), чтобы все снова заработало. Я сомневаюсь, что это сработало потому, что новый плагин исправил ошибку, но скорее ожидаю, что загрузка нового плагина дает всей системе Eclipse-Scala "полную перезагрузку" системы, которая избавляет ее от шланга.