我在 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"]
}
执行此任务会将以下命令回显到“输出”窗口:
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 命令(包括所有参数)并将其粘贴到终端窗口中的命令行。 结果:编译/src 文件夹中的单个 .java 文件,并在/target 文件夹中出现一个 .class 文件。 这表明tasks.json 文件中javac 命令的语法(包括所有参数)是正确的。
在tasks.json 文件中,将通配符替换为/src 文件夹中单个.java 文件的名称。 结果:VS Code 任务完美运行,并在/target 文件夹中生成一个 .class 文件。 这表明tasks.jason 文件中有关命令的所有内容都正常,除了通配符之外。
关于我做错了什么有什么想法吗?
最佳答案
我也遇到过,这显然是一个错误。目前有一个新的终端运行程序可以修复此错误。尝试将任务 JSON 架构更改为新的 2.0.0 版本,重新加载窗口,一切都会好起来的:
{
"version": "2.0.0",
"command": "javac",
"isShellCommand": true,
"echoCommand": true,
"showOutput": "always",
"args": ["-d","${workspaceRoot}/target","${workspaceRoot}/src/*.java"]
}
相关问题在这里: https://github.com/Microsoft/vscode/issues/16865
您不需要顺便转义斜杠字符。
关于macos - 在 Visual Studio Code 中的 arg 中使用通配符的任务命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698512/