Windows10下VS Code启动Java Language Server失败求助
解决VS Code启动时Java Language Server无法自动启动的问题
Windows10系统中,每次打开VS Code或重新加载Java工作区,右下角都会弹出提示:Couldn't start client Java Language Server。所有插件已更新至最新版本,手动重启Java Language Service后可正常运行,但无法实现启动时自动正常工作。已尝试重新安装VS Code、删除所有配置文件,问题仍未解决。
插件日志内容
{ message: 'Removing workspace storage folder : c:/Users/77503/AppData/Roaming/Code/User/workspaceStorage/e30a982be03c6df4f9a4ba5f0771b0ff/redhat.java', level: 'info', timestamp: '2024-03-24 11:46:42.075' } { message: "Use the JDK from 'java.jdt.ls.java.home' setting as the initial default project JDK.", level: 'info', timestamp: '2024-03-24 11:46:42.502' } { message: 'Starting Java server with: g:\\jdk-17.0.3+7\\bin\\java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -Xlog:disable -javaagent:c:\\Users\\77503\\.vscode\\extensions\\redhat.java-1.28.1-win32-x64\\lombok\\lombok-1.18.31.jar -jar c:\\Users\\77503\\.vscode\\extensions\\redhat.java-1.28.1-win32-x64\\server\\plugins\\org.eclipse.equinox.launcher_1.6.700.v20231214-2017.jar -configuration c:\\Users\\77503\\AppData\\Roaming\\Code\\User\\globalStorage\\redhat.java\\1.28.1\\config_ss_win -data c:\\Users\\77503\\AppData\\Roaming\\Code\\User\\workspaceStorage\\9ded0751c8412d1c39036a35d1ca6505\\redhat.java\\ss_ws', level: 'info', timestamp: '2024-03-24 11:46:42.719' } { message: 'Starting Java server with: g:\\jdk-17.0.3+7\\bin\\java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -Xlog:disable -javaagent:c:\\Users\\77503\\.vscode\\extensions\\redhat.java-1.28.1-win32-x64\\lombok\\lombok-1.18.31.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\\Users\\77503\\AppData\\Roaming\\Code\\User\\workspaceStorage\\9ded0751c8412d1c39036a35d1ca6505\\redhat.java -Daether.dependencyCollector.impl=bf -jar c:\\Users\\77503\\.vscode\\extensions\\redhat.java-1.28.1-win32-x64\\server\\plugins\\org.eclipse.equinox.launcher_1.6.700.v20231214-2017.jar -configuration c:\\Users\\77503\\AppData\\Roaming\\Code\\User\\globalStorage\\redhat.java\\1.28.1\\config_win -data c:\\Users\\77503\\AppData\\Roaming\\Code\\User\\workspaceStorage\\9ded0751c8412d1c39036a35d1ca6505\\redhat.java\\jdt_ws', level: 'info', timestamp: '2024-03-24 11:46:43.318' } { message: 'WARNING: Using incubator modules: jdk.incubator.foreign, jdk.incubator.vector\r\n', level: 'info', timestamp: '2024-03-24 11:46:43.909' } { message: 'WARNING: Using incubator modules: jdk.incubator.vector, jdk.incubator.foreign\r\n', level: 'info', timestamp: '2024-03-24 11:46:43.917' } { message: '3月 24, 2024 11:46:52 上午 org.apache.aries.spifly.BaseActivator log\r\n' + '信息: Registered provider ch.qos.logback.classic.servlet.LogbackServletContainerInitializer of service jakarta.servlet.ServletContainerInitializer in bundle ch.qos.logback.classic\r\n', level: 'info', timestamp: '2024-03-24 11:46:52.603' } { message: '3月 24, 2024 11:46:52 上午 org.apache.aries.spifly.BaseActivator log\r\n' + '信息: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic\r\n', level: 'info', timestamp: '2024-03-24 11:46:52.612' }
排查与解决步骤
1. 修正服务启动模式
从日志可见,VS Code启动时连续启动了两次Java Language Server,可能引发资源冲突:
- 打开VS Code设置,搜索
java.server.launchMode,将值改为Standard(避免LightWeight/Hybrid模式的双实例启动)。 - 保存设置后重启VS Code,观察是否仍弹出启动失败提示。
2. 调整JVM内存参数
当前启动参数-Xmx1G可能不足以支撑服务启动,尝试扩容:
- 打开VS Code设置,搜索
java.jdt.ls.vmargs,将参数修改为-Xmx2G -Xms512m(可根据项目大小调整为-Xmx4G)。 - 可暂时移除
-javaagent指向的lombok代理,测试是否为lombok导致启动异常,确认后再重新添加。
3. 清理Java服务存储目录
手动清理工作区和全局存储目录,让服务重新生成配置:
- 关闭VS Code,删除路径
C:\Users\77503\AppData\Roaming\Code\User\workspaceStorage\9ded0751c8412d1c39036a35d1ca6505\redhat.java。 - 同时删除
C:\Users\77503\AppData\Roaming\Code\User\globalStorage\redhat.java下的旧版本配置文件夹。 - 重启VS Code,等待服务重新初始化存储文件。
4. 验证JDK兼容性
当前使用JDK 17.0.3,尝试更换更稳定的版本:
- 替换为官方最新版JDK 17 LTS或JDK 11 LTS,确保JDK路径不含中文、空格等特殊字符。
- 检查VS Code设置中
java.jdt.ls.java.home的路径是否正确,无拼写错误。
5. 排查插件冲突
部分第三方插件可能与Java插件冲突:
- 暂时禁用所有非Java相关插件,重启VS Code测试启动是否正常。
- 若恢复正常,逐个启用插件,定位冲突插件后卸载或更新。
内容的提问来源于stack exchange,提问作者Ast F
相关产品推荐
相关产品推荐

