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

以下是我用来从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 库吗?


答案 1

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

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

答案 2

至于我,在“运行/调试配置”[idealJ]的配置中

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


推荐