Scala Junit-NoClassDefFoundError:Scala/Function1
我试图运行Scala Junit 4测试,但我得到了Scala Junit-NoClassDefFoundError:Scala/Function1,scala,junit,Scala,Junit,我试图运行Scala Junit 4测试,但我得到了NoClassDefFoundError:Scala/Function1。我通过运行配置启动它 有人知道问题是什么吗 完全错误: java.lang.NoClassDefFoundError: scala/Function1 at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unkn
NoClassDefFoundError:Scala/Function1
。我通过运行配置启动它
有人知道问题是什么吗
完全错误:
java.lang.NoClassDefFoundError: scala/Function1
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.isJUnit3SetUpTest(JUnit4TestLoader.java:61)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:49)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.ClassNotFoundException: scala.Function1
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)
... 12 more
我在使用
scala 2.11.*
构建的akka-http-2.11
时遇到了类似的问题,但我在类路径中使用了scala-2.12.4
错误是
java.lang.NoClassDefFoundError: scala/Function1$class
at akka.stream.Supervision$$anon$1.<init>(Supervision.scala:57)
at akka.stream.Supervision$.<init>(Supervision.scala:57)
at akka.stream.ActorMaterializerSettings$.apply(ActorMaterializer.scala:258)
at akka.stream.ActorMaterializerSettings$.apply(ActorMaterializer.scala:248)
at akka.stream.ActorMaterializer$$anonfun$1.apply(ActorMaterializer.scala:41)
at akka.stream.ActorMaterializer$$anonfun$1.apply(ActorMaterializer.scala:41)
at scala.Option.getOrElse(Option.scala:121)
at akka.stream.ActorMaterializer$.apply(ActorMaterializer.scala:41)
at akka.stream.ActorMaterializer$.create(ActorMaterializer.scala:110)
修复方法是在所有依赖项中使用相同版本的scala(2.11
)
dependencies {
compile group: 'org.scala-lang', name: 'scala-library', version: '2.11.11'
compile group: 'com.typesafe.akka', name: 'akka-actor_2.12', version: '2.5.6'
compile group: 'com.typesafe.akka', name: 'akka-http-experimental_2.11', version: '2.4.11.2'
}
因此,请确保使用的scala版本相同。通常这意味着scala库不在类路径上,或者其他配置错误。请共享一些环境信息,运行配置安装程序以使我们更轻松。@AkosKrivachy感谢您的帮助,关于Scala库不在我的测试运行配置的类路径中,您是对的。我把它添加为一个外部罐子,它就工作了。Scala库jar列在我的Eclipse项目中,并使用Maven works运行测试,那么为什么运行配置找不到它呢?
dependencies {
compile group: 'org.scala-lang', name: 'scala-library', version: '2.11.11'
compile group: 'com.typesafe.akka', name: 'akka-actor_2.12', version: '2.5.6'
compile group: 'com.typesafe.akka', name: 'akka-http-experimental_2.11', version: '2.4.11.2'
}