首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在windows上使用javac的命令行参数文件?

如何在windows上使用javac的命令行参数文件?
EN

Stack Overflow用户
提问于 2018-06-10 01:55:36
回答 1查看 204关注 0票数 0

下面是我的工作目录:

代码语言:javascript
复制
C:\GitHub\

在这个目录下,我有:

代码语言:javascript
复制
class\ src\ cmain

cmain是我的参数文件。

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

代码语言:javascript
复制
main.java CalcHandler.java

下面是cmain的内容

代码语言:javascript
复制
-cp .\class\
-sourcepath .\src\
-d .\class\
.\src\main.java

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

代码语言:javascript
复制
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中正确使用它的意见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 03:29:15

代码语言:javascript
复制
javac '@cmain'

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

其他选项:

代码语言:javascript
复制
javac --% @cmain

这将告诉PowerShell停止解析--%标记之后的参数,只将它们逐字传递给另一个程序。

代码语言:javascript
复制
javac `@cmain 

这将对@进行转义,因此它的特殊行为将不适用。

请始终记住,如果您想要将该语法传递给其他程序,则shell功能将需要解决方法。这与cmd中的%扩展环境变量或大多数shells将参数标记为空格和其他空格没有什么不同。一个只打印参数的小实用程序可以用来诊断这种情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档