macos - 在 Visual Studio Code 中的 arg 中使用通配符的任务命令

标签 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"]
}

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

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

我尝试过以下方法:

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

  2. 在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/

相关文章:

java - Netbeans javac 在 LayerGenerateProcessor 中为 @Override 抛出异常。问题出在哪里?

Java Object[] 和缓存分级

eclipse - .class 文件内的行数与 eclipse 编译和 maven 编译不同

git - 您的存储库没有配置为推送到的 Remote

ruby-on-rails - 如何从 Visual Studio Code 运行和调试 Ruby on Rails?

python - 导入 python-igraph 时出错

xcode - 为什么 Xcode 在编译我的应用程序之前要求 "codesign wants to access key access in your keychain"

logging - vscode在终端打印太多登录

java - 如何检测 Mac OS X 中的 java 运行时?

macos - 命令行并在Mac终端中输出不同的颜色?