如何解决为什么我在运行时抛出NoClassDefFoundError,但是在sbt控制台中实例化该类却可以呢?
我正在尝试让Processing在Scala和sbt
下工作,但遇到一个奇怪的问题。尝试运行以下程序(Main.scala
):
import processing.core.PApplet
class ProcessingTest extends PApplet {
override def setup() {
size(1024,768)
background(10)
}
override def draw() {
}
}
object ProcessingTest extends App {
PApplet.main("ProcessingTest")
}
导致运行时异常:
[error] (Animation Thread) java.lang.NoClassDefFoundError: processing/data/StringList
[error] java.lang.NoClassDefFoundError: processing/data/StringList
[error] at processing.core.PApplet.insideSettings(PApplet.java:915)
[error] at processing.core.PApplet.size(PApplet.java:1987)
...
但是,奇怪的是,我能够在sbt控制台会话中创建processing.data.StringList
:
scala> new processing.data.StringList("foo","bar")
res1: processing.data.StringList = StringList size=2 [ "foo","bar" ]
为什么会这样?可能的相关细节:我正在使用Oracle Java 8,并且我的sbt依赖项如下设置:
val ProcessingVersion = "3.3.7"
libraryDependencies ++= {
Seq(
"org.processing" % "core" % ProcessingVersion,"org.processing" % "net" % ProcessingVersion,"org.processing" % "serial" % ProcessingVersion,"org.processing" % "pde" % ProcessingVersion,"org.processing" % "pdf" % ProcessingVersion
)
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)