【问题标题】:How to use command-line argument files for javac on windows?如何在 Windows 上为 javac 使用命令行参数文件?
【发布时间】:2018-11-19 11:36:49
【问题描述】:

这是我的工作目录:

C:\GitHub\

在这个目录下我有:

class\ src\ cmain

cmain 是我的参数文件。

我所有的.java源代码文件都在src\

main.java CalcHandler.java

这是cmain的内容

-cp .\class\
-sourcepath .\src\
-d .\class\
.\src\main.java

但是当我尝试在PowerShell中使用cmain编译src\main.java时,却无法识别:

PS C:\GitHub> javac @cmain
Usage: javac <options> <source files>                                                                                   
where possible options include:                                                                                           
-g                         Generate all debugging info                                                                  
-g:none                    Generate no debugging info
....

我在 Linux 上试过,效果很好,内容完全一样。

我应该怎么做才能让它工作?

编辑:显然这是 PowerShell 的错,它在命令提示符下工作。但我仍然想听听您关于如何在 PowerShell 中使其正确。

【问题讨论】:

    标签: powershell command-line-arguments javac


    【解决方案1】:
    javac '@cmain'
    

    PowerShell 将参数解析为命令,@cmain 表示获取数组 $cmain 并将其扩展为每个项目一个参数(飞溅)。通过传递一个明确的字符串,你可以绕过这种自动化。

    其他选项:

    javac --% @cmain
    

    这将告诉 PowerShell 在 --% 标记之后停止解析参数,并将它们逐字传递给其他程序。

    javac `@cmain 
    

    这将转义@,因此其特殊行为将不适用。

    永远记住,如果您想将该语法传递给其他程序,shell 功能将需要变通方法。这与%cmd 中扩展环境变量或大多数shell 在空格和其他空白处标记参数没有什么不同。一个仅打印其参数的小型实用程序可以方便地诊断此类情况。

    【讨论】:

      猜你喜欢
      • 2019-10-25
      • 1970-01-01
      • 2012-09-28
      • 2015-08-11
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 2016-12-14
      • 2019-08-13
      相关资源
      最近更新 更多