在Visual Studio代码中使用arg中的通配符的任务命令

Mar*_*tin 7 macos javac visual-studio-code

我在OS X Yosemite上使用Visual Studio Code 0.9.2来编辑.java文件.

我尝试使用以下tasks.json文件编译此文件:

{
    "version": "0.1.0",
    "command": "javac",
    "isShellCommand": true,
    "echoCommand": true,
    "showOutput": "always",
    "args": ["-d","${workspaceRoot}\/target","${workspaceRoot}\/src\/*.java"]
}
Run Code Online (Sandbox Code Playgroud)

执行此任务会将以下命令回显到"输出"窗口:

running command$ javac -d /Users/caoimheboers/Desktop/JLab11/target
/Users/caoimheboers/Desktop/JLab11/src/*.java
Run Code Online (Sandbox Code Playgroud)

...这很好,但是任务执行的结果会报告为:

javac: file not found: /Users/caoimheboers/Desktop/JLab11/src/*.java
Usage: javac <options> <source files>
use -help for a list of possible options
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

  1. 从"输出"窗口复制echoed javac命令(包括所有参数),并将其粘贴到终端窗口中的命令行.结果:/ src文件夹中的单个.java文件编译,并且.class文件出现在/ target文件夹中.这表明在tasks.json文件中javac命令的语法(包括所有参数)都是正确的.

  2. 在tasks.json文件中,将通配符替换为/ src文件夹中单个.java文件的名称.结果:VS Code任务运行正常,并在/ target文件夹中生成.class文件.这表示除了通配符外,tasks.jason文件中有关命令的所有内容都是正常的.

关于我做错了什么的任何想法?

Ada*_*hta 1

我也遇到过,这显然是一个错误。目前有一个新的终端运行程序可以修复此错误。尝试将任务 JSON 模式更改为新的 2.0.0 版本,重新加载窗口,一切都会好起来的:

{
    "version": "2.0.0",
    "command": "javac",
    "isShellCommand": true,
    "echoCommand": true,
    "showOutput": "always",
    "args": ["-d","${workspaceRoot}/target","${workspaceRoot}/src/*.java"]
}
Run Code Online (Sandbox Code Playgroud)

相关问题在这里: https://github.com/Microsoft/vscode/issues/16865

顺便说一句,您不需要转义斜杠字符。