首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sbt和scala.swing的NoClassDefFoundError

使用sbt和scala.swing的NoClassDefFoundError
EN

Stack Overflow用户
提问于 2016-12-25 11:06:22
回答 0查看 1.2K关注 0票数 5

我是JVM领域的新手,所以如果这是一个常见的问题,我很抱歉。我在OSX上使用Scala (2.12)和sbt 0.13.13。

我正在开发一个依赖于图形库scala.swing (2.10.x)的小应用程序。在使用示例代码(http://otfried.org/scala/index_28.html)时,我几乎立即遇到了运行时问题。

具体地说,当调用sbt run时,我得到一个堆栈跟踪,前导是:

代码语言:javascript
复制
[error] (run-main-0) java.lang.NoClassDefFoundError: scala/Proxy$class
java.lang.NoClassDefFoundError: scala/Proxy$class
    at scala.swing.Window.<init>(Window.scala:25)
    at scala.swing.Frame.<init>(RichWindow.scala:75)
    at scala.swing.MainFrame.<init>(MainFrame.scala:19)

(Proxy似乎是scala stdlib中的一个类/特征)

对SO和其他地方的阅读表明,当编译时存在的代码无法在随后的运行时定位时,通常会发出此类异常。实际上,代码编译得很好,只有在运行代码时才会出现问题。

我找到的所有建议都是协调您的classpath来解决这些问题。然而,如果sbt控制台是可信的,那么我的编译时和运行时类路径是相同的:

代码语言:javascript
复制
> show compile:fullClasspath
[info] * Attributed(/Users/chris/Projects/thing2/target/scala-2.12/classes)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.1.jar)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-swing/jars/scala-swing-2.10.6.jar)
[success] Total time: 0 s, completed Dec 24, 2016 7:01:15 PM
> show runtime:fullClasspath
[info] * Attributed(/Users/chris/Projects/thing2/target/scala-2.12/classes)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.1.jar)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-swing/jars/scala-swing-2.10.6.jar)
[success] Total time: 0 s, completed Dec 24, 2016 7:01:19 PM

所以,我发现自己陷入了一个法律僵局。任何关于下一步在哪里寻找的建议都将不胜感激。为了清楚起见,到目前为止,这种情况只发生在scala.swing中。我在Scala中还有其他几个小项目,它们没有任何问题。令人困惑的是,“缺失”的类似乎是scala标准库材料。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41318393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档