当我在ScalaIDE中运行代码时,为什么会出现`java.lang.NoClassDefFoundError:scala / Function1`?

时间:2014-06-25 18:14:35

标签: java scala maven noclassdeffounderror scala-ide

这是一个我用来从Java调用Scala方法的简单测试:

public static void main(String args[]) {
  java.util.Map<String, java.util.List<String>> rec = news.recommend.DriverObj.runTest();     
  System.out.println(rec.toString());
}

以下是Scala方法的定义:

def runTest: java.util.Map[String, java.util.List[String]] = {
  new java.util.HashMap[String, java.util.List[String]]
}

但它引发了一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Function1
    at news.recommend.DriverObj.runTest(DriverObj.scala)

我该怎么做才能让它顺利运行?

更新:我正在通过Eclipse运行它,我的构建路径包含:

enter image description here

应该找到Scala库吗?

2 个答案:

答案 0 :(得分:16)

将Scala依赖项添加到maven构建可以解决问题:

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.10.3</version>
</dependency>

答案 1 :(得分:2)

对于我来说,在 “运行/调试配置” [idealJ]

请记住选择 “包括具有“提供的”范围的依赖项”