手动安装 JDK 17 或 21,并配置好ja va.home,这是 VSCode 能编译、运行、调试 Ja va 的前提。具体来说:下载完整 JDK(别只装 JRE),确保ja va和ja vac版本一致,然后在settings.json里指定ja va.home指向 JDK 根目录,重启 VSCode 后,状态栏能看到 JDK 版本才算成功。

VSCode 本身不包含 Ja va 运行环境,必须手动安装 JDK 并正确配置 ja va.home。否则,连最基本的 ja vac 编译、ja va 运行、调试器启动都会报错。
下载并安装 JDK(推荐 JDK 17 或 JDK 21)
系统自带的 OpenJDK(比如 macOS 上的 /usr/bin/ja va)通常不完整,缺少 ja vac 或调试支持,最好别用。直接去官方渠道下载完整 JDK:
- Windows/macOS/Linux 都推荐从 Eclipse Temurin 下载
jdk-17.0.12+7或jdk-21.0.3+9(LTS 版本更稳定)。 - 安装后记下完整路径:Windows 类似
C:\Program Files\Eclipse Adoptium\jdk-17.0.12+7,macOS 类似/Library/Ja va/Ja vaVirtualMachines/jdk-17.0.12+7.jdk/Contents/Home。 - 安装完毕后,在终端执行
ja va -version和ja vac -version,两个命令都必须返回版本号。如果缺少其中一个,说明你装的是 JRE 或者路径没生效。
在 VSCode 中设置 ja va.home(关键一步)
VSCode 的 Ja va 插件(比如 redhat.ja va)不会自动识别系统里的 JDK,必须手动指定。这一步不配好,插件会反复提示“Cannot resolve JDK”或者卡在“Loading Ja va Projects…”上。
- 打开 VSCode 设置(
Ctrl+,或Cmd+,),搜索ja va.home。 - 点击“Edit in settings.json”,添加一行:
"ja va.home": "/Library/Ja va/Ja vaVirtualMachines/jdk-17.0.12+7.jdk/Contents/Home"
(Windows 路径用双反斜杠或正斜杠均可,如"C:\Program Files\Eclipse Adoptium\jdk-17.0.12+7")。 - 改完保存,重启 VSCode —— 不重启的话,插件还是读旧配置。
- 验证:新建一个
.ja va文件,输入public class Test {,看左下角是否显示 JDK 版本;再按Ctrl+Shift+P输入Ja va: Configure Classpath,能正常打开即说明配置成功。
安装必要插件并验证运行流程
只装 JDK 还不够,VSCode 需要语言服务和运行支持:
- 必装插件:
redhat.ja va(核心语言支持)、vscja va.vscode-ja va-debug(调试)、vscja va.vscode-ja va-test(可选,用于跑 JUnit)。 - 新建文件夹 → 新建
Hello.ja va→ 写最简代码:public class Hello { public static void main(String[] args) { System.out.println("OK"); } } - 右键选择
Run Ja va(注意不是Run Code插件),输出面板应打印OK;如果报错Error: Could not find or load main class Hello,大概率是没设ja va.home或文件名/类名不一致。 - 注意:不要依赖
code-runner插件来跑 Ja va,它默认不读ja va.home,容易造成路径混乱。
常见错误与绕不开的坑
零基础最容易卡在以下几个地方:
ja va命令可用,但 VSCode 里报“The ja va.home variable is not set”:说明系统 PATH 有 JDK,但 VSCode 没有继承该环境变量 —— 必须手动配ja va.home,不能指望自动发现。- 装了多个 JDK(比如同时有 JDK 8 和 JDK 17),
ja va -version显示 17,但 VSCode 仍用 8:检查ja va.home是否指向了旧路径,或者项目根目录下有.vscode/settings.json覆盖了全局设置。 - macOS 上从官网下载的 JDK 21 安装后路径含空格(如
Home Folder),导致 VSCode 启动失败:建议重装 Temurin 版本,路径天然无空格。 - Windows 用户用 PowerShell 启动 VSCode(
code .),但 JDK 是在 CMD 里配的 PATH:PowerShell 不读 CMD 的 PATH,建议统一使用系统级环境变量,或直接配ja va.home。
真正卡住人的,往往不是“会不会写 Ja va”,而是 ja va.home 指向了一个不存在的路径,或者 VSCode 根本没读到它。每次遇到问题,先打开设置搜 ja va.home,再在终端敲两遍 which ja va 和 ls -la 确认路径是否存在,这比重装十遍都管用。