Java scala.swing NoClassDefFoundError
我有一个非常简单的项目,包括一个Java scala.swing NoClassDefFoundError,java,scala,scala-swing,Java,Scala,Scala Swing,我有一个非常简单的项目,包括一个.scala文件、一个build.sbt文件和一个/lib文件夹,其中有一个.jar。我的scalaVersion设置为2.10.5(为了向后兼容),我运行了sbt compile,并下载了scala-2.10和scala-swing的.jars。所以这部分似乎起作用了 当我执行sbt运行时会出现运行时错误: [info] Running GuiProgramOne [error] (run-main-0) java.lang.NoClassDefFoundEr
.scala
文件、一个build.sbt
文件和一个/lib
文件夹,其中有一个.jar
。我的scalaVersion设置为2.10.5(为了向后兼容),我运行了sbt compile
,并下载了scala-2.10和scala-swing的.jars。所以这部分似乎起作用了
当我执行sbt运行时
会出现运行时错误:
[info] Running GuiProgramOne
[error] (run-main-0) java.lang.NoClassDefFoundError: scala/collection/GenTraversableLike$class
java.lang.NoClassDefFoundError: scala/collection/GenTraversableLike$class
at scala.swing.RefSet.<init>(Publisher.scala:167)
at scala.swing.Publisher$$anon$1.<init>(Publisher.scala:34)
at scala.swing.Publisher$class.$init$(Publisher.scala:34)
at scala.swing.Window.<init>(Window.scala:25)
at scala.swing.Frame.<init>(RichWindow.scala:77)
at scala.swing.MainFrame.<init>(MainFrame.scala:19)
at UI.<init>(UI.scala:3)
at GuiProgramOne$.main(UI.scala:11)
at GuiProgramOne.main(UI.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
Caused by: java.lang.ClassNotFoundException: scala.collection.GenTraversableLike$class
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at scala.swing.RefSet.<init>(Publisher.scala:167)
at scala.swing.Publisher$$anon$1.<init>(Publisher.scala:34)
at scala.swing.Publisher$class.$init$(Publisher.scala:34)
at scala.swing.Window.<init>(Window.scala:25)
at scala.swing.Frame.<init>(RichWindow.scala:77)
at scala.swing.MainFrame.<init>(MainFrame.scala:19)
at UI.<init>(UI.scala:3)
at GuiProgramOne$.main(UI.scala:11)
at GuiProgramOne.main(UI.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
[trace] Stack trace suppressed: run last compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)
build.sbt:
lazy val root = (project in file(".")).
settings(
inThisBuild(List(
scalaVersion := "2.10.5"
)),
name := "Game of Life",
libraryDependencies ++= Seq(
"org.scala-lang" % "scala-swing" % "2.9.1"
)
)
代码:您的scala版本是2.10.5,因此scala swing版本应该是scala-
swing-2.10.5.jar
。因此,您应该更改build.sbt文件,如下所示
libraryDependencies ++= Seq(
"org.scala-lang" % "scala-swing" % scalaVersion.value
)
而且您不需要lib目录中的
scala-swing-2.9.1.jar
,因为您已经在build.sbt中声明了依赖关系。因此,删除它以避免托管依赖项和非托管依赖项之间的任何潜在冲突 万岁,谢谢你,成功了!!事实上,我试着让它们都成为2.10.6版本,但没有成功,但是10.5版本起作用了。我不知道为什么,但我现在就要了
libraryDependencies ++= Seq(
"org.scala-lang" % "scala-swing" % scalaVersion.value
)