如何在 windows 上使用 javac 的命令行参数文件?
How to use command-line argument files for javac on windows?
这是我的工作目录:
C:\GitHub\
在这个目录下我有:
class\ src\ cmain
和cmain
是我的参数文件。
我所有的.java源代码文件都在src\
下
main.java CalcHandler.java
下面是cmain
的内容
-cp .\class\
-sourcepath .\src\
-d .\class\
.\src\main.java
但是当我尝试使用 cmain
在 PowerShell 中编译 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 中使其正确。
javac '@cmain'
PowerShell 解析命令的参数,@cmain
表示获取数组 $cmain
并将其扩展为每个项目一个参数(splatting)。通过传递一个显式字符串,您可以绕过该自动化。
其他选项:
javac --% @cmain
这将告诉 PowerShell 在 --%
标记之后停止解析参数,并将它们逐字传递给其他程序。
javac `@cmain
这将转义 @
,因此它的特殊行为将不适用。
永远记住,如果您想将该语法传递给其他程序,shell 功能将需要解决方法。这与 %
在 cmd
中扩展环境变量或大多数 shells 在空格和其他空格处标记化参数没有什么不同。一个仅打印其参数的小型实用程序可以派上用场来诊断此类情况。
这是我的工作目录:
C:\GitHub\
在这个目录下我有:
class\ src\ cmain
和cmain
是我的参数文件。
我所有的.java源代码文件都在src\
main.java CalcHandler.java
下面是cmain
-cp .\class\
-sourcepath .\src\
-d .\class\
.\src\main.java
但是当我尝试使用 cmain
在 PowerShell 中编译 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 中使其正确。
javac '@cmain'
PowerShell 解析命令的参数,@cmain
表示获取数组 $cmain
并将其扩展为每个项目一个参数(splatting)。通过传递一个显式字符串,您可以绕过该自动化。
其他选项:
javac --% @cmain
这将告诉 PowerShell 在 --%
标记之后停止解析参数,并将它们逐字传递给其他程序。
javac `@cmain
这将转义 @
,因此它的特殊行为将不适用。
永远记住,如果您想将该语法传递给其他程序,shell 功能将需要解决方法。这与 %
在 cmd
中扩展环境变量或大多数 shells 在空格和其他空格处标记化参数没有什么不同。一个仅打印其参数的小型实用程序可以派上用场来诊断此类情况。