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

blu*_*sky 27 java scala noclassdeffounderror maven 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());
}
Run Code Online (Sandbox Code Playgroud)

以下是Scala方法的定义:

def runTest: java.util.Map[String, java.util.List[String]] = {
  new java.util.HashMap[String, java.util.List[String]]
}
Run Code Online (Sandbox Code Playgroud)

但它抛出一个错误:

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

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

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

在此输入图像描述

那么应该找到Scala库?

Rid*_*del 16

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

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.10.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)


Kua*_*nyi 14

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

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

  • 为我工作。谢谢! (2认同)
  • 也为我工作,但为什么呢? (2认同)