下面是我的工作目录:
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中正确使用它的意见。
发布于 2018-06-10 03:29:15
javac '@cmain'
PowerShell解析命令的参数,而@cmain
表示获取数组$cmain
并将其扩展为每个项目一个参数(splatting)。通过传递一个显式字符串,您可以绕过这种自动化。
其他选项:
javac --% @cmain
这将告诉PowerShell停止解析--%
标记之后的参数,只将它们逐字传递给另一个程序。
javac `@cmain
这将对@
进行转义,因此它的特殊行为将不适用。
请始终记住,如果您想要将该语法传递给其他程序,则shell功能将需要解决方法。这与cmd
中的%
扩展环境变量或大多数shells将参数标记为空格和其他空格没有什么不同。一个只打印参数的小实用程序可以用来诊断这种情况。
https://stackoverflow.com/questions/50777059
复制相似问题