首页 > 解决方案 > 尝试运行 scala swing 并在线程“main”java.lang.NoClassDefFoundError: scala/swing/MainFrame 中获取异常

问题描述

这是我试图运行的代码:

import scala.swing._

object MyApp extends SimpleSwingApplication{
    def top = new MainFrame{
        contents = new Label("GUI stuff")
    }

}

我正在通过命令行运行代码。在我的目录中,我有上面的代码 ( app2.scala),一个 scala swing jar 文件 ( scala-swing_2.13-2.1.1.jar)。

我正在编译 scala 文件,如:

scalac -cp "scala-swing_2.13-2.1.1.jar" app2.scala

然后尝试运行它

scala MyApp

但我收到一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/swing/MainFrame
        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 scala.reflect.internal.util.ScalaClassLoader.run(ScalaClassLoader.scala:101)
        at scala.reflect.internal.util.ScalaClassLoader.run$(ScalaClassLoader.scala:97)
        at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:130)
        at scala.tools.nsc.CommonRunner.run(ObjectRunner.scala:29)
        at scala.tools.nsc.CommonRunner.run$(ObjectRunner.scala:28)
        at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:43)
        at scala.tools.nsc.CommonRunner.runAndCatch(ObjectRunner.scala:35)
        at scala.tools.nsc.CommonRunner.runAndCatch$(ObjectRunner.scala:34)
        at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:70)
        at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:91)
        at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:103)
        at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:108)
        at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Caused by: java.lang.ClassNotFoundException: scala.swing.MainFrame
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 18 more

我怎样才能解决这个问题?

我检查了我的 scala 版本是否与 swing 版本相同。我正在运行 2.13.2

标签: scala

解决方案


推荐阅读