aganm:
私はシンプルなデスクトップアプリケーションを作るためのScalaでJava AWTを使用しようとしています。私は2日間のためにそれに触れていなかったと私は戻ってきたとき、私はjava.lang.NoClassDefFoundErrorが例外を取得するまで、私は、何の問題もなく、いくつかの日のためにそれに取り組んできました。それは前に罰金を働いていたが、今でもコードの最も単純なものは、私は、このエラーが発生します。
https://github.com/aganm/NoClassDefFoundError
Main.scala
import java.awt.{EventQueue}
class Bar(val bar: Int) {
}
object Main {
def main(args: Array[String]) {
EventQueue.invokeLater(() => {
val b = new Bar(20)
println(b.bar)
});
}
}
私は、SBTとそれを実行します
sbt run
これはコンパイルが、私はこの例外を取得します
[error] (AWT-EventQueue-0) java.lang.NoClassDefFoundError: Bar
[error] java.lang.NoClassDefFoundError: Bar
[error] at Main$.$anonfun$main$1(Main.scala:11)
[error] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
[error] oats / Cat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
[error] at java.awt.EventQueue.access$500(EventQueue.java:97)
[error] at java.awt.EventQueue$3.run(EventQueue.java:709)
[error] at java.awt.EventQueue$3.run(EventQueue.java:703)
[error] at java.security.AccessController.doPrivileged(Native Method)
[error] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
[error] at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
[error] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
[error] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
[error] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
[error] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[error] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
[error] at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[error] Caused by: java.lang.ClassNotFoundException: Bar
[error] at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
[error] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error] at Main$.$anonfun$main$1(Main.scala:11)
[error] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
[error] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
[error] at java.awt.EventQueue.access$500(EventQueue.java:97)
[error] at java.awt.EventQueue$3.run(EventQueue.java:709)
[error] at java.awt.EventQueue$3.run(EventQueue.java:703)
[error] at java.security.AccessController.doPrivileged(Native Method)
[error] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
[error] at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
[error] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
[error] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
[error] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
[error] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[error] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
[error] at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[error] stack trace is suppressed; run last Compile / bgRun for the full output
何が私が間違っているのでしょうか?
合計:
私は、SBTのバグを疑います。私はSBT 1.2.8と1.3.0 SBTで問題を再現することはできませんが、。私が追加したときも、私は問題を再現していないfork := true
にbuild.sbt
SBT 1.3.0を使用した場合でも、ファイル。あなたは回避策として、これらのオプションのいずれかを使用することができます。
私は問題が報告されているSBT 1.3.0との奇妙なNoClassDefFoundErrorがエラーをし、それが今、SBT 1.3.2で修正されています。
1.3.0新機能があると思われるプロセスクラスローディングでは -の値のいずれも説明していないが、それは本当に関連している場合ので、私はわからない、問題を修正するようです。