Intellij scala项目不支持swing
Intelij scala project does not support swing
我无法在我的 scala-sdk-2.12.4 中使用 swing 库。
我正在使用 Java 9 版本。
当我尝试 运行 程序时:
package rs.ac.bg.etf.zd173013m.gui
import swing._
object HelloWorld extends SimpleSwingApplication {
def top = new MainFrame {
title = "First Swing App"
contents = new Button {
text = "Click me"
}
}
}
我收到以下错误:
Exception in thread "main" java.lang.IncompatibleClassChangeError: Method scala.swing.Reactor.$init$()V must be InterfaceMethodref constant
at scala.swing.SwingApplication.<init>(SwingApplication.scala:4)
at scala.swing.SimpleSwingApplication.<init>(SimpleSwingApplication.scala:13)
at rs.ac.bg.etf.zd173013m.gui.HelloWorld$.<init>(Application.scala:5)
at rs.ac.bg.etf.zd173013m.gui.HelloWorld$.<clinit>(Application.scala)
at rs.ac.bg.etf.zd173013m.gui.HelloWorld.main(Application.scala)
您的类路径中有不兼容的 JAR 版本。包含 "SwingApplication" 的 JAR 中的代码是针对与您的类路径中的版本不同的 "Reactor" 版本编译的。
您使用什么来管理依赖项?我猜你是手动下载的。
切换到像 Gradle 这样的依赖管理系统,这个问题应该会消失,因为它将确保您所有的依赖是一致的。
我无法在我的 scala-sdk-2.12.4 中使用 swing 库。 我正在使用 Java 9 版本。 当我尝试 运行 程序时:
package rs.ac.bg.etf.zd173013m.gui
import swing._
object HelloWorld extends SimpleSwingApplication {
def top = new MainFrame {
title = "First Swing App"
contents = new Button {
text = "Click me"
}
}
}
我收到以下错误:
Exception in thread "main" java.lang.IncompatibleClassChangeError: Method scala.swing.Reactor.$init$()V must be InterfaceMethodref constant
at scala.swing.SwingApplication.<init>(SwingApplication.scala:4)
at scala.swing.SimpleSwingApplication.<init>(SimpleSwingApplication.scala:13)
at rs.ac.bg.etf.zd173013m.gui.HelloWorld$.<init>(Application.scala:5)
at rs.ac.bg.etf.zd173013m.gui.HelloWorld$.<clinit>(Application.scala)
at rs.ac.bg.etf.zd173013m.gui.HelloWorld.main(Application.scala)
您的类路径中有不兼容的 JAR 版本。包含 "SwingApplication" 的 JAR 中的代码是针对与您的类路径中的版本不同的 "Reactor" 版本编译的。
您使用什么来管理依赖项?我猜你是手动下载的。
切换到像 Gradle 这样的依赖管理系统,这个问题应该会消失,因为它将确保您所有的依赖是一致的。