在Intellij中运行Kotlin REPL时出现Java.lang.ExceptionInInitializeError错误
我安装了全新的Intellij 2020.3.3社区和JDK v16。我启动了Intellij,并确保更新Kotlin插件。我创建了一个新的Kotlin项目,并没有对其进行任何更改。我试图运行Kotlin REPL工具(Tools->Kotlin->Kotlin REPL),但出现以下异常:在Intellij中运行Kotlin REPL时出现Java.lang.ExceptionInInitializeError错误,exception,intellij-13,kotlin-repl,Exception,Intellij 13,Kotlin Repl,我安装了全新的Intellij 2020.3.3社区和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:\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
“C:\Program Files\Java\jdk-16\bin\Java.exe”-Dkotlin.repl.ideMode=true-Dfile.encoding=UTF-8@C:\Users\--\AppData\Local\Temp\idea\u arg\u文件349852720
异常:java.lang.ExceptionInInitializeError
位于com.intellij.pom.java.LanguageLevel。(LanguageLevel.java:25)
在com.intellij.core.CoreLanguageLevelProjectExtension上。(CoreLanguageLevelProjectExtension.java:26)
在com.intellij.core.JavaCoreProjectEnvironment上。(JavaCoreProjectEnvironment.java:42)
位于org.jetbrains.kotlin.cli.jvm.compiler.kotlincorprojectEnvironment。(KotlincorProjectEnvironment.kt:26)
位于org.jetbrains.kotlin.cli.jvm.compiler.kotlincorenvironment$ProjectEnvironment。(KotlincorenEnvironment.kt:121)
位于org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:90)
位于org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
位于org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88)
位于org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
位于org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
位于org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
位于org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
位于org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
位于org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:222)
位于org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:214)
位于org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:271)
位于org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
原因:java.lang.reflect.InAccessibleObject异常:无法使受保护的void java.util.ResourceBundle.setParent(java.util.ResourceBundle)可访问:模块java.base未“打开java.util”到未命名模块@55141def
位于java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
位于java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
位于java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
位于java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
位于com.intellij.util.ReflectionUtil.MakeAccessable(ReflectionUtil.java:252)
位于com.intellij.util.ReflectionUtil.getDeclaredMethod(ReflectionUtil.java:269)
位于com.intellij.DynamicBundle(DynamicBundle.java:22)
... 还有17个
我尝试重新安装JDK/IDE,并清除了临时文件夹。不知道还有什么可以尝试的,IDE和语言对我来说都是新的。建议
编辑
找到解决方法:我进行了另一次卸载,并降级到JDKv8,但问题不存在。我在Java升级过程中遇到了同样的问题。我使用
采用OpenJDK 16.0.0.j9 adpt
,并通过以下方式进行了修复:
- 将
版本升级到Gradle
(我正在用Java16进行早期测试)7.0-rc-1
- 使用以下部分更新了我的
:Gradle脚本
compileKotlin { kotlinOptions { jvmTarget = "15" } } compileTestKotlin { kotlinOptions { jvmTarget = "15" } }
枚举中仍然不支持Java 16,因此我现在必须将其设置为15。我通过使用JDK 15而不是16来修复它 要使用JDK 15,请执行以下步骤: 文件->新建->项目 ->在«Project SDK»中,转到«下载JDK»并选择«版本:15»并单击下载 然后像往常一样创建项目(按照前面的步骤使用JDK15)