java - 如何在 VS Code 中调试 Maven 项目?
问题描述
我正在使用 VS Code 使用 Maven 构建插件编写 Java。经过大量摆弄配置后一切正常,除了调试。调试配置如下所示:
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch) - Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "Debug (Launch)-App<music-03>",
"request": "launch",
"mainClass": "ptcs.App",
"projectName": "music-03"
}
当我使用第二个配置启动调试器时,调试我的项目应用程序(不启动当前文件),我收到一个错误:
~/Sync/projects/music/music-03:cd /Users/Mike/Sync/projects/music/music-03 ; /Library
/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/java
-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:58363
-Dfile.encoding=UTF-8 @/var/folders/pn/3p41p2fj14d50n707c7x2p4c0000gn
/T/cp_90sfb6m3zinsbhwyvyknqb5hv.argfile ptcs.App
Error: Could not find or load main class
@.var.folders.pn.3p41p2fj14d50n707c7x2p4c0000gn.T.cp_90sfb6m3zinsbhwyvyknqb5hv.argfile
请注意,我可以毫无问题地运行 maven 编译和打包目标,我什至可以生成一个带有依赖项的可执行 jar。我的 pom.xml 在这里复制有点长,但是如果有人可以给我一个提示,我应该从中发布什么,我会这样做。
解决方案
我最终想通了。命令行中的 @ 符号仅适用于 Java 1.9 及更高版本,Java 调试器插件错误地将其放入其命令行。
一种解决方案是将项目更新为更高版本的 Java。另一种解决方案是添加shortenCommandLine : jarManifest
到launch.json。第三种可能性是将 $JAVA_HOME 指向您的 JDK 位置并重新启动 VS Code。