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

Macos 在Visual Studio代码的arg中使用通配符的任务命令,macos,javac,visual-studio-code,Macos,Javac,Visual Studio Code,我正在使用OS X Yosemite上的Visual Studio代码0.9.2编辑.java文件 我尝试使用以下tasks.json文件编译此文件: { "version": "0.1.0", "command": "javac", "isShellCommand": true, "echoCommand": true, "showOutput": "always", "args": ["-d","${workspaceRoot}\/target

我正在使用OS X Yosemite上的Visual Studio代码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"]
}
执行此任务会将以下命令回显到输出窗口:

running command$ javac -d /Users/caoimheboers/Desktop/JLab11/target
/Users/caoimheboers/Desktop/JLab11/src/*.java
。。。这很好,但是任务执行的结果报告为:

javac: file not found: /Users/caoimheboers/Desktop/JLab11/src/*.java
Usage: javac <options> <source files>
use -help for a list of possible options
javac:找不到文件:/Users/caoimheboers/Desktop/JLab11/src/*.java
用法:javac
使用-help获取可能选项的列表
我尝试了以下方法:

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

  • 在tasks.json文件中,将通配符替换为/src文件夹中单个.java文件的名称。 结果:VS代码任务运行良好,并在/target文件夹中生成一个.class文件。 这表示tasks.jason文件中的命令除通配符外一切正常


  • 你知道我做错了什么吗?

    我也经历过,这显然是一个bug。目前有一个新的终端运行程序修复了此错误。尝试将tasks JSON模式更改为新的2.0.0版本,重新加载窗口,一切正常:

    {
        "version": "2.0.0",
        "command": "javac",
        "isShellCommand": true,
        "echoCommand": true,
        "showOutput": "always",
        "args": ["-d","${workspaceRoot}/target","${workspaceRoot}/src/*.java"]
    }
    
    相关问题如下:

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