kotlin-language-server
kotlin-language-server copied to clipboard
Kotlin Language Server fails to install on first use
Description
After installing the extension and clicking the toast for first-time setup, the KLS downloads but fails to install and start.
Extension version
v0.2.22
Additional context
VS Code 1.55.2 on Windows 10 x64
> javac --version
javac 16
> java --version
openjdk 16 2021-03-16
OpenJDK Runtime Environment AdoptOpenJDK (build 16+36)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 16+36, mixed mode, sharing)
Exception in thread "main" 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.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:425)
at org.javacs.kt.compiler.CompilationEnvironment.<init>(Compiler.kt:101)
at org.javacs.kt.compiler.Compiler.<init>(Compiler.kt:451)
at org.javacs.kt.CompilerClassPath.<init>(CompilerClassPath.kt:19)
at org.javacs.kt.KotlinLanguageServer.<init>(KotlinLanguageServer.kt:24)
at org.javacs.kt.MainKt.main(Main.kt:44)
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 @14899482
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)
... 11 more
[Info - 4:47:17 PM] Connection to server got closed. Server will restart.
Exception in thread "main" 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.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:425)
at org.javacs.kt.compiler.CompilationEnvironment.<init>(Compiler.kt:101)
at org.javacs.kt.compiler.Compiler.<init>(Compiler.kt:451)
at org.javacs.kt.CompilerClassPath.<init>(CompilerClassPath.kt:19)
at org.javacs.kt.KotlinLanguageServer.<init>(KotlinLanguageServer.kt:24)
at org.javacs.kt.MainKt.main(Main.kt:44)
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 @14899482
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)
... 11 more
[Info - 4:47:18 PM] Connection to server got closed. Server will restart.
Exception in thread "main" 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.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:425)
at org.javacs.kt.compiler.CompilationEnvironment.<init>(Compiler.kt:101)
at org.javacs.kt.compiler.Compiler.<init>(Compiler.kt:451)
at org.javacs.kt.CompilerClassPath.<init>(CompilerClassPath.kt:19)
at org.javacs.kt.KotlinLanguageServer.<init>(KotlinLanguageServer.kt:24)
at org.javacs.kt.MainKt.main(Main.kt:44)
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 @14899482
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)
... 11 more
[Info - 4:47:19 PM] Connection to server got closed. Server will restart.
Exception in thread "main" 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.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:425)
at org.javacs.kt.compiler.CompilationEnvironment.<init>(Compiler.kt:101)
at org.javacs.kt.compiler.Compiler.<init>(Compiler.kt:451)
at org.javacs.kt.CompilerClassPath.<init>(CompilerClassPath.kt:19)
at org.javacs.kt.KotlinLanguageServer.<init>(KotlinLanguageServer.kt:24)
at org.javacs.kt.MainKt.main(Main.kt:44)
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 @14899482
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)
... 11 more
[Info - 4:47:20 PM] Connection to server got closed. Server will restart.
Exception in thread "main" 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.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:425)
at org.javacs.kt.compiler.CompilationEnvironment.<init>(Compiler.kt:101)
at org.javacs.kt.compiler.Compiler.<init>(Compiler.kt:451)
at org.javacs.kt.CompilerClassPath.<init>(CompilerClassPath.kt:19)
at org.javacs.kt.KotlinLanguageServer.<init>(KotlinLanguageServer.kt:24)
at org.javacs.kt.MainKt.main(Main.kt:44)
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 @14899482
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)
... 11 more
[Error - 4:47:21 PM] Connection to server got closed. Server will not be restarted.
This might be a combination of a Kotlin compiler bug and Java 16, enforcing access restrictions on reflection that were previously just warnings. Could you check whether the issue persists on an older Java version?
I can confirm that it works on 15.0.2.7.1-amzn java version but it crashes on 16
For anyone using neovim's builtin LSP, here's a solution:
local jdk_home = "/usr/lib/jvm/java-11-openjdk" -- Your actual jdk path
lsp_config.kotlin_language_server.setup {
cmd_env = {
PATH = jdk_home .. "/bin:" .. vim.env.PATH,
JAVA_HOME = jdk_home,
},
}
I have a similar sort of issue when invoking kotlin-languager-server
.
Context:
>javac --version
javac 16.0.2
>java --version
openjdk 16.0.2 2021-07-20
OpenJDK Runtime Environment (build 16.0.2+7)
OpenJDK 64-Bit Server VM (build 16.0.2+7, mixed mode)
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at org.javacs.kt.MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
... 1 more
When I start kotlin-language-server
from nvim with coc, it also crashes with:
Server languageserver.kotlin failed to start: Error: Connection to server got closed. Server will not be restarted.
I have the same issue as @jmdaemon, but I'm using Java version 17.