NoClassDefFoundError:混合Scala / Java项目中的scala / ScalaObject

时间:2011-10-16 00:15:51

标签: java eclipse scala classpath scala-ide

背景:我是一名C#开发人员,但我的下一个项目需要在JVM上。我研究过Scala,我认为它让我能够用C#(Lambdas,推断类型,功能风格等)来实现。我将自己归类为一个非常新手的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经验是这里的主要罪魁祸首)

我正在使用带有官方Scala插件的Eclipse ...所有这些都是2-3天前的最新版本。

由于

1 个答案:

答案 0 :(得分:8)

您需要将scala-library.jar库添加到类路径中。您可以通过几种不同的方式实现这一目标,但最简单的方法是将文件复制到项目中(将其拖放到eclipse包浏览器中)。接下来,右键单击该文件,然后选择添加到构建路径。这会将scala jar添加到类路径中。这应该可以解决问题。