Java开发插件配置:
Microsoft有个官方的插件Java Extension Pack,点开它的“依赖项”可以看到就是需要装的几个插件,可以直接装这个
或者
我们可以直接安装 Java 扩展包 ,里面包含了受大多数 Java 开发者欢迎的插件:
- Language Support for Java(TM) by Red Hat:通过 Eclipse ™ JDT Language Server 提供 Java 语言支持
- Debugger for Java:基于 Java Debug Server 的轻量级调试工具。
- Java Test Runner:执行和调试 Java 测试用例。
- Maven for Java:Maven 插件。
根据自己需要配置的插件:
- Spring Boot Support
- Spring Initializr Java Support
- Tomcat for Java
- CheckStyle for Java
- Lombok Annotations Support for VS Code
- Terminal
调试:
打开包含 Java 项目的代码,然后按下面的步骤进行:
- 准备项目。打开一个 .java 文件,Java 扩展会激活。Maven、Gradle 和 Eclipse 项目都能得到支持。这个扩展会自动构建项目,不需要手工触发构建。
- 开始调试。切换到调试视图(Ctrl+Shift+D),打开 launch.json 并添加 Java 调试配置。
- 在 mainClass 中填入要启动的类,或者在 hostName 中填入要附加的主机名以及在 port 中填入端口。
- 设置断点并按 F5 开始调试。
支持以下特性:
- 启动/附加 - 你可以在 VS Code 中启动一个 Java 项目,也可以附加到一个在本地或远程端以调试模式运行的 JVM 进程。
- 断点 - 支持表达式条件或命中条件断点,可以在内置的断点设置容器中轻松进行设置。因此你可以直接在源代码视图中插入断点,不需要弹出容器,非常方便。按异常中断也得到了支持。
- 控制流 - 包括 暂停、继续 F5、单步 F0、步进 F11、步出(跳出) Shift+F11。
- 数据审查 - 当程序停止在断点上的时候,调试器可以访问当前内存中的变量名和值。支持查看/监视/设置变量值。
- 诊断 - 调用栈 面板会显示程序的调用栈,你在这个面板中可以在捕获的调用路径中随意跳转。多线程调试也通过并行栈得到支持。
- 调试控制台 - 可以从调试控制台看到标准输出和错误输出信息。
快捷键:
注释代码: Ctrl + /
切换侧边栏: Ctrl + b
文件夹中查找: Ctrl + shift + f
查找替换: Ctrl + shift + h
打开一个新的窗口:Ctrl +Shift + n
重构代码: fn + F2
代码格式化: Shift+Alt+F
,或 Ctrl+Shift+P
后输入 format code
启动调试:F5
启动配置文件launch.json:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch) - Current File",
"request": "launch",
"vmArgs":"-Dserver.port=8082 -Dspring.profiles.active=dev -Dmaven.test.skip=true",
"mainClass": "${file}"
},
{
"type": "java",
"name": "Debug (Launch)-SpringBootDemoApplication<SpringBootDemo>",
"request": "launch",
"vmArgs":"-Dserver.port=8081 -Dspring.profiles.active=dev -Dmaven.test.skip=true",
"mainClass": "com.qhong.SpringBootDemoApplication",
"projectName": "SpringBootDemo"
}
]
}
启动配置说明:
Launch:
- mainClass (required): java 代码的 main 类 (例如:[mymodule/]com.xyz.MainClass).
- args: 传递给程序的命令行参数
- sourcePaths: 程序的额外源目录。默认情况下,调试器从项目设置中查找源代码。这个选项允许调试器在额外的目录中查找源代码
- modulePaths: 用于启动JVM的模块路径。如果没有指定,调试器将自动从当前项目解析
- classPaths: 启动JVM的类路径。如果没有指定,调试器将自动从当前项目解析
- encoding: 该文件中的JVM的编码设置。如果没有指定,将使用’UTF-8’。在Supported Encodings 中可以找到可能的值
- vmArgs: JVM的额外选项和系统属性(例如:
-Xms<size> -Xmx<size> -D<name>=<value>
) - projectName: 调试器在其中搜索类的首选项目。在不同的项目中可能会有重复的类名。当调试器在启动程序时查找指定的主类时,这个设置也可以工作。表达式求值是必须的
- cwd: 程序的工作目录
- env: 程序的额外环境变量
- stopOnEntry: 启动后自动暂停程序
- console: 用于启动程序的指定控制台。默认为 internalConsole
- internalConsole: VS Code Debug 控制台 (输入不被支持)
- integratedTerminal: VS Code 集成终端
- externalTerminal: 可以在用户设置中配置的外部终端
- stepFilters: 在执行debug调试时,跳过指定的类或方法
- classNameFilters: 跳过指定的类。类名应该完全限定,支持通配符
- skipSynthetics: 跳过synthetic 方法
- skipStaticInitializers: 跳过静态初始化方法
- skipConstructors: 跳过构造方法
Attach:
- hostName (required): 远程调试器的主机名或IP地址
- port (required): 远程调试器的debug端口
- timeout: 重新连接之前的超时时间,以毫秒为单位(默认为30000ms)
- sourcePaths: 程序的额外源目录。默认情况下,调试器从项目设置中查找源代码。这个选项允许调试器在额外的目录中查找源代码
- projectName: 调试器在其中搜索类的首选项目。在不同的项目中可能会有重复的类名。当调试器在启动程序时查找指定的主类时,这个设置也可以工作
- stepFilters: 在 debug 调试时,跳过指定的类或方法
- classNameFilters: 跳过指定的类。类名应该完全限定,支持通配符
- skipSynthetics: 跳过 synthetic 方法
- skipStaticInitializers: 跳过静态初始化方法
- skipConstructors: 跳过构造方法
User Setting:
- java.debug.logLevel: 发送到VS代码的调试器日志的最低级别,默认为警告
- java.debug.settings.showHex: 在变量视图中以十六进制格式显示数字,默认为false
- java.debug.settings.showStaticVariables: 在variables视图中显示静态变量,默认为true
- java.debug.settings.showQualifiedNames: 在变量视图中显示完全限定的类名,默认为false
- java.debug.settings.maxStringLength: 变量视图或调试控制台中显示的最大字符串长度。超过此长度的字符串将被裁剪。默认值为0,表示没有进行修剪
- java.debug.settings.enableHotCodeReplace: 启用Java源代码的热代码替换。确保VScode 中的 Java 代码没有禁用自动构建。有关用法和限制的更多信息,请参阅 wiki page
遇到的问题:
- 找不到主类等方法
找不到构建路径
等等一系列路径问题
解决方法:
可能是项目有错误(如子项目同名)或缓存问题。
1、可以按Ctrl+Shift+P,输入Java:Open Java Language Server Log file,查看日志文件来排错。
2、 同时删除C:\Users<用户名>\AppData\Roaming\Code\CachedData目录下的缓存,重新打开VS Code是就能正常识别java文件和生成调试配置了。 (如果路径不对,就在日志文件里面找到路径,删除最新缓存(类似图中一串英文数字的文件夹),重新打开VS Code。)
参考:
Visual Studio Code 搭建 Java 开发环境