java - Intellij scala项目不支持swing

标签 java scala intellij-idea java-9 scala-2.12

我无法在 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 版本。 JAR 中包含“SwingApplication”的代码是针对与类路径上的版本不同的“Reactor”版本进行编译的。

您使用什么来管理依赖项?我猜您正在手动下载它们。

切换到像 Gradle 这样的依赖管理系统,这个问题就会消失,因为它将确保所有依赖项都是一致的。

关于java - Intellij scala项目不支持swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892613/

相关文章:

java - 属性 'spring.cloud.config.server.git.privateKey' 不是有效的私钥

java - 在 Java 中读取文件、替换单词并写入新文件

java - 我必须打印出这个方程的 5 个 future 值

scala - 我的方法与 Predef 中的一致性之间存在隐含歧义的问题

java - 如何安装 Scala IDE

c++ - 在 OSX 上为 C/C++ 安装 IntelliJ IDEA 12

java - 依赖项列表中的项目 'jasmin' 和英雄无效 对于烟灰

Java Facade模式的结构变化

java - 在 playframework Controller 中调用静态函数时验证错误

scala - 使用 Scala Spark : How to convert a Dataset[(String , array[int])] 到 Dataset[(String, int, int, int, int, ...)]