如果您直接在 launch.json 中传递 vmArgs,不确定此解决方案是否适用,但我在使用 settings.json 时遇到了麻烦
当您在 VSCode 中转到 Settings > Launch 时,它会将您带到 settings.json,它会自动添加以下样板:
"launch": {
"configurations": [],
"compounds": []
}
按照文档,我使用必要的 vmArgs 对其进行了修改以启动我的应用程序:
"launch": {
"configurations": [
{
"type": "java",
"request": "launch",
"vmArgs": "--foo arg1 --bar arg2",
"mainClass": "baz.Klass",
"projectName": "baz"
}
],
"compounds": []
}
我不知道的是,在尝试运行应用程序时,此配置会被复制到 launch.json。似乎 launch.json 是配置应用程序时实际使用的内容,但是,并非每个条目都被正确复制(尤其是 vmArgs)。
在尝试启动我的应用程序之前,我的 .vscode 目录中没有 launch.json 文件。尝试启动我的应用程序后,创建了带有以下内容的 launch.json 文件:
{
"configurations": [
{
"type": "java",
"request": "launch",
"mainClass": "baz.Klass",
"projectName": "baz_ca302835"
},
{
"type": "java",
"request": "launch",
"vmArgs": "--foo arg1 --bar arg2",
"mainClass": "baz.Klass",
"projectName": "baz"
}
]
}
我只需将 vmArgs 从第二个配置对象复制到第一个配置对象,就可以使用正确的命令行参数成功调用应用程序。
如果您检查终端并发现在调用您的应用时 vmArgs 不存在,则此解决方案可能适用,因为在我将它们复制到第一个之前,我就是这种情况launch.json 中的配置对象