VSCode需手动安装JDK 17+(非JRE)、Extension Pack for Java扩展,并在项目级.settings.json中正确配置java.home指向JDK根目录,否则无法启动Language Server、调试或解析依赖。

java 命令都识别不了,更别说调试或智能提示。
确认已安装 JDK 17+(不是 JRE)
VSCode 的 Java 扩展(如 Red Hat Java)明确要求 JDK,JRE 会报错 The java.home variable is not set 或无法启动 Language Server。
- 运行
java -version和javac -version,两者输出版本号必须一致且 ≥17 - 若只装了 JRE,卸载后从 Eclipse Temurin 或 Oracle JDK 17 下载完整 JDK
- Windows 用户注意:安装时勾选「Add to PATH」;macOS/Linux 用户需在 shell 配置中导出
JAVA_HOME,例如:export JAVA_HOME=$(/usr/libexec/java_home -v 17)
安装核心扩展:Extension Pack for Java
不要只装单个 Java Extension Pack,它已废弃。现在官方推荐的是 Extension Pack for Java(ID:redhat.java),含 5 个协同工作的扩展。
- 在 VSCode 扩展市场搜索
Extension Pack for Java,认准发布者是Red Hat - 安装后重启 VSCode,首次打开
.java文件会自动下载并启动Java Language Server(约 100MB,需科学联网) - 如果卡在
Starting the Java Language Server...,检查java.home是否指向 JDK 根目录(不是bin子目录)
配置 workspace 级别的 java.home(避免全局污染)
多人协作或项目用不同 JDK 版本时,硬编码用户级 settings.json 会导致冲突。应优先在项目根目录下建 .vscode/settings.json:
PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍
{
"java.home": "/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home",
"java.configuration.updateBuildConfiguration": "interactive"
}
-
java.home值必须是 JDK 安装根路径,macOS 是.../Contents/Home,Windows 是C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.1+12-hotspot\\ -
java.configuration.updateBuildConfiguration设为interactive可在新建pom.xml或build.gradle后弹窗提示是否启用 Maven/Gradle 支持 - 删掉用户设置里的
java.home,避免和 workspace 设置打架
验证是否真能编译运行(别信“绿色对勾”)
扩展装完、配置写好,不代表就能跑。常见假成功:语法高亮有、但 F5 调试报错 Cannot resolve module 或 No main types found。
立即学习“Java免费学习笔记(深入)”;
- 新建文件夹 → 新建
HelloWorld.java→ 写最简代码:public class HelloWorld { public static void main(String[] args) { System.out.println("OK"); } } - 右键 →
Run Java(不是点击三角形按钮),看终端是否输出OK - 若失败,打开命令面板(
Ctrl+Shift+P)→ 运行Java: Clean the Java language server workspace,再重试 - 仍失败?检查文件名是否和
class名完全一致(包括大小写),且未放在包声明下(先别写package)
java.home 正确 + Extension Pack 完整 + workspace 设置隔离三者同时成立。少一个,就卡在某个看似无关的报错里。









