NoClassDefFoundError: scala / ScalaObject в смешанном проекте Scala / Java - PullRequest
6 голосов
/ 16 октября 2011

Предыстория: я разработчик на C #, но мой следующий проект должен быть на JVM. Я исследовал Scala и думаю, что он позволяет мне делать то, что я могу в C # (лямбда-выражения, предполагаемые типы, функциональный стиль и т. Д.). Я бы назвал себя очень начинающим Java-разработчиком ... особенно, если речь идет об использовании IDE и т. Д.

У меня есть проект Scala, который, кажется, работает ... Я сделал проект Java и ссылался на проект Scala Кажется, редактор знает о классах в проекте Scala (typeahead и т. Д.)

Когда я пытаюсь запустить проект Java, я получаю эту ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at learning_scala.java.Main.main(Main.java:12)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

Очевидно, что что-то пошло не так в компиляции Java / Scala, но я понятия не имею, как ее решить (мой недостаток опыта Java является основным виновником здесь)

Я использую Eclipse с официальным плагином Scala ... все они актуальны на 2-3 дня назад.

Спасибо

1 Ответ

8 голосов
/ 16 октября 2011

Вам нужно добавить библиотеку scala-library.jar в ваш путь к классам.Вы можете сделать это несколькими различными способами, но самый простой - скопировать файл в ваш проект (перетащите его в свой пакетный менеджер eclipse).Далее щелкните правой кнопкой мыши файл и выберите «Добавить в путь сборки».Это добавляет банку скалы к вашему классу.Это должно решить проблему.

...