在IntelliJ IDEA中编译错误:“没有MessageCollector”

时间:2018-04-20 20:38:10

标签: java intellij-idea compiler-errors kotlin java-9

编辑:已解决。请参阅@acdsee评论,了解

因为当我从2017.3.5更新IntelliJ IDEA到2018.1时,我开始的每个项目都抛出了这个错误:

> Error:Module 'JBA' production: java.lang.Exception: LOGGING: Loading
> modules: [java.se, javafx.base, javafx.controls, javafx.fxml,
> javafx.graphics, javafx.media, javafx.swing, javafx.web,
> jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink,
> jdk.httpserver, jdk.incubator.httpclient, jdk.jartool, jdk.javadoc,
> jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject,
> jdk.management, jdk.management.cmm, jdk.management.jfr,
> jdk.management.resource, jdk.net, jdk.packager, jdk.packager.services,
> jdk.scripting.nashorn, jdk.sctp, jdk.security.auth, jdk.security.jgss,
> jdk.unsupported, jdk.xml.dom, oracle.desktop, oracle.net, java.base,
> java.compiler, java.datatransfer, java.desktop, java.xml,
> java.instrument, java.logging, java.management, java.management.rmi,
> java.rmi, java.naming, java.prefs, java.scripting, java.security.jgss,
> java.security.sasl, java.sql, java.sql.rowset, java.xml.crypto,
> jdk.internal.jvmstat, jdk.management.agent, jdk.jdwp.agent,
> jdk.internal.ed, jdk.internal.le, jdk.internal.opt, jdk.jlink] (no
> MessageCollector configured)

2 个答案:

答案 0 :(得分:2)

我遇到了与Kotlin 1.2.40和Java JDK 10相同的问题。在代码中的每次更改之后,我不得不重建整个项目以摆脱编译错误。删除out文件夹确实只对下一次更改有帮助。我一直在寻找将Kotlin插件降级到之前版本的方法,但是找到了更好的解决方案。

我的IDEA项目没有Gradle,我可以通过将Gradle添加到项目中来解决问题。

关闭项目,将以下文件“build.gradle”放到根文件夹中,然后在IntelliJ IDEA中重新导入项目。

我的文件build.gradle看起来如此:

buildscript {
    ext.kotlin_version = '1.2.40'

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin'

sourceSets {
    main.java.srcDirs += 'src'
}

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}

现在使用插件版本1.2.40可以很好地工作。不必降级到以前的版本。

答案 1 :(得分:1)

在评论中将答案提升为答案,因为这是实际答案:

这似乎是IntelliJ Kotlin插件v1.2.40中的一个错误,以及它与Java 10的交互方式。请参阅here。解决方案是升级到v1.2.41。

(不要将你的项目转换为使用Gradle构建,就像其他答案所表明的那样只是因为插件已经坏了。这很奇怪。)