12

我全新安装了 Intellij 2020.3.3 Community 和 JDK v16。我启动了 Intellij,并确保更新了 Kotlin 插件。我创建了一个新的 Kotlin 项目,并且没有对其进行任何更改。我尝试运行 Kotlin REPL 工具(Tools->Kotlin->Kotlin REPL),但出现以下异常:

"C:\Program Files\Java\jdk-16\bin\java.exe" -Dkotlin.repl.ideMode=true -Dfile.encoding=UTF-8     @C:\Users\---\AppData\Local\Temp\idea_arg_file349852720
exception: java.lang.ExceptionInInitializerError
    at com.intellij.pom.java.LanguageLevel.<clinit>(LanguageLevel.java:25)
    at com.intellij.core.CoreLanguageLevelProjectExtension.<init>    (CoreLanguageLevelProjectExtension.java:26)
    at com.intellij.core.JavaCoreProjectEnvironment.<init>(JavaCoreProjectEnvironment.java:42)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment.<init>    (KotlinCoreProjectEnvironment.kt:26)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.<init>    (KotlinCoreEnvironment.kt:121)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:90)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:222)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:214)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:271)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected void     java.util.ResourceBundle.setParent(java.util.ResourceBundle) accessible: module java.base does not "opens     java.util" to unnamed module @55141def
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    at com.intellij.util.ReflectionUtil.makeAccessible(ReflectionUtil.java:252)
    at com.intellij.util.ReflectionUtil.getDeclaredMethod(ReflectionUtil.java:269)
    at com.intellij.DynamicBundle.<clinit>(DynamicBundle.java:22)
    ... 17 more

我试图重新安装 JDK/IDE,并清除了临时文件夹。不知道还能尝试什么,IDE 和语言对我来说都是新的。建议?

编辑

找到解决方法:我再次卸载,并降级到 JDKv8,问题不存在。

4

5 回答 5

4

IntelliJ IDEA Community Edition 2021.1.3今天安装并JDK-16.0.1在我的 linux PC 上使用。

这也发生在我的案例中。我首先检查了所有设置,然后我发现我有一个 Kotlin 更新。在我更新后,Kotlin REPL 启动时没有任何错误。

要更新 Kotlin 插件,请访问Settings -> Languages & Frameworks -> Kotlin.

单击check again按钮以了解您是否有任何新更新。如果是,则更新并重新启动,然后查看 Kotlin REPL 是否正常工作。

于 2021-07-17T08:15:33.240 回答
3

我通过使用 JDK 15 而不是 16 来修复它。

要使用 JDK 15,请执行以下步骤:

文件 -> 新建 -> 项目...

-> 在 «Project SDK» 中转到 «Download JDK» 并选择 «Version: 15» 并单击 Download。

然后像往常一样创建您的项目(按照前面的步骤使用 JDK 15)。

于 2021-06-18T05:36:32.353 回答
1

在这种情况下,所有 compileOptions、kotlinOptions 和 GradleJdk 都具有相同的版本。就像下图一样。

在此处输入图像描述

于 2022-01-06T08:45:12.767 回答
1

在 Java 升级期间我遇到了同样的问题。我使用AdoptOpenJDK 16.0.0.j9-adpt并通过以下方式修复它:

  • 升级Gradle版本到7.0-rc-1(我早期用 Java 16 测试它)

  • Gradle script用以下部分更新了我的:

    compileKotlin {
       kotlinOptions {
          jvmTarget = "15"
       }
    }
    
    compileTestKotlin {
       kotlinOptions {
          jvmTarget = "15"
       }
    }
    

Enum 中仍然不支持 Java 16,所以我现在不得不将它设置为 15。

于 2021-03-26T01:41:03.433 回答
0

新建项目后下载了adaptopenjdk 1.8版本,问题解决

于 2021-07-06T04:55:24.860 回答