怎样在vscode中搭建Java开发环境并调试应用【教程】

云辰大大_2757

云辰大大_2757

2026-01-18

717人浏览

原创

必须确保java和javac版本一致且VS Code使用同一JDK;装全官方Java扩展;正确配置launch.json的mainClass和sourcePaths;刷新项目并重启Language Server。

怎样在vscode中搭建java开发环境并调试应用【教程】

装对 JDK 版本,别让 java -version 和 javac -version 对不上

VS Code 本身不带 Java 运行时,必须手动装好 JDK。常见问题是:系统 PATH 里配了 JDK 17,但 VS Code 启动时读到的是 JRE 8 或另一个旧版本的 java,导致 javac 编译成功、java 运行失败,或调试器直接报 Unable to launch JVM。

  • 用终端执行 which java 和 which javac(macOS/Linux)或 where java(Windows),确认两者指向同一 JDK 目录下的 bin
  • 在 VS Code 中按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Java: Configure Java Runtime,检查「Java home」是否指向你期望的 JDK 根目录(如 /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home)
  • 如果用了 SDKMAN! 或 jEnv,确保 VS Code 是从终端启动(例如在终端中执行 code .),否则它可能无法继承 shell 的环境变量

Extension 要装全:不只是 Extension Pack for Java

只装 Extension Pack for Java 看似够用,但实际缺一不可——尤其调试时会静默失败。

  • 必须启用 Debugger for Java(由 Microsoft 提供),否则点击「Run → Start Debugging」会提示 No debug configuration found
  • Project Manager for Java 负责识别 pom.xml 或 build.gradle,缺失会导致「No Java projects found」,连 src 文件夹都不高亮
  • 如果用 Lombok,得额外装 Lombok Annotations Support for VS Code,否则 @Data 类型会标红,且断点可能无法停在 getter 方法内
  • 禁用任何第三方 Java 语法高亮插件(比如老旧的 Java Extension),它们和官方包冲突,常导致自动补全卡死

launch.json 里 mainClass 必须可解析,不能靠猜

VS Code 不像 IntelliJ 那样自动扫描 public static void main(String[])。如果你没配 launch.json 或写错类名,调试按钮灰掉,或运行时报 ClassNotFoundException。

macOS UI 自动化技能包 —— 用 Python 控制你的 Mac
macOS UI 自动化技能包 —— 用 Python 控制你的 Mac

让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限

下载
  • 右键 Java 源文件 → Debug As Java,VS Code 会自动生成 .vscode/launch.json,但前提是该文件里确实有合法的 main 方法;否则它只会报 No main class detected
  • 手动配置时,mainClass 值是**全限定类名**,不是文件路径。例如 com.example.App,而不是 src/main/java/com/example/App.java
  • 若项目用 Maven,确保 sourceRoots 在 launch.json 中设为 ["src/main/java"],否则断点加载失败,控制台显示 Source not found
  • 避免在 args 字段里写带空格的字符串而不加引号,比如 "--name=My App" 必须写成 "--name=My App"(JSON 字符串本身已含引号),否则 JVM 启动参数解析出错

调试时看不到变量值?先查 org.eclipse.jdt.ls.core.projectConfiguration

断点能停,但变量窗全是 或 Cannot retrieve children,大概率是项目未被 Language Server 正确加载,而非代码问题。

  • 打开命令面板,执行 Java: Refresh Projects,强制重载 Maven/Gradle 元数据
  • 检查 .vscode/settings.json 是否有误配的 java.configuration.updateBuildConfiguration,设为 "interactive" 时,每次改 pom.xml 都会弹窗,选错就中断索引
  • 观察 VS Code 右下角状态栏:如果有黄色感叹号写着 Building workspace,说明 JDT LS 还在扫描,此时打断点无效;等它变成绿色的 Ready 再调试
  • 如果用了模块化(module-info.java),确保 requires java.base; 存在,否则 JDT LS 可能拒绝加载该模块下的类
{
  "configurations": [
    {
      "type": "java",
      "name": "Launch App",
      "request": "launch",
      "mainClass": "com.example.App",
      "projectName": "my-app",
      "sourcePaths": ["src/main/java"],
      "console": "integratedTerminal"
    }
  ]
}

最常被跳过的一步:改完 launch.json 或 pom.xml 后,不重启 Java Language Server。按 Ctrl+Shift+P 输入 Java: Restart Language Server,比关掉再开 VS Code 更快见效。

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2195

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3482

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1176

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3999

7

eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

690

5

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

2023.07.24

5806

6

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

2023.11.02

8999

18

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2804

5

eclipse和idea有什么区别
eclipse和idea有什么区别

eclipse和idea的区别:1、平台支持;2、内存占用;3、插件系统;4、智能代码提示;5、界面设计;6、调试功能;7、学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

662

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习