Java 支持空白和引用的Apache CLI替代方案
在我最大的一个项目中,我已经使用Java 支持空白和引用的Apache CLI替代方案,java,apache,parsing,command-line-interface,double-quotes,Java,Apache,Parsing,Command Line Interface,Double Quotes,在我最大的一个项目中,我已经使用org.apache.commons.cli.CommandLineParser很长时间了。目前,我在多个exec类中有几十个参数 不久前,我注意到对空格和引号的支持已经中断。简单地说 --parameter="I need something like this" 或者有时候 --parameter="I would even appreciate espacing \"double quotes\"" 根据,这看起来像是一个依赖于操作系统的bug(在我的W
org.apache.commons.cli.CommandLineParser
很长时间了。目前,我在多个exec类中有几十个参数
不久前,我注意到对空格和引号的支持已经中断。简单地说
--parameter="I need something like this"
或者有时候
--parameter="I would even appreciate espacing \"double quotes\""
根据,这看起来像是一个依赖于操作系统的bug(在我的Windows机器上,解析引用的参数是有效的,但在Debian服务器上却不行)
因此,我的问题是:是否有任何替代方案合理地类似于Apache Commons CLI(因此我不必完全重写),但支持引用?是Commons CLI的一种替代方案,正日益流行。它既有a也有a
Picocli非常支持解析。
默认情况下,picocli中保留命令行参数周围的引号,但可以使用CommandLine::setTrimQuotes
进行配置。参数时,不拆分带引号的字符串(可以使用命令行::setSplitQuotedString
配置)
例如:
@Command(name = "example")
class Example {
@Option(names = "-x", split = ",")
String[] parts;
}
如果我们给这个命令一些带引号的输入:
example -x "-Dvalues=a,b,c","-Dother=1,2"
这将导致零件
数组具有以下值:
"-Dvalues=a,b,c"
"-Dother=1,2"
可能感兴趣的其他picocli功能:
- 命令行
- 使用帮助
-文件(或“”)支持@
- 用于命名选项和位置参数
-Dkey=value
- (未向控制台发出回声)
- 优质
- 积极维护
这看起来像广告。你应该在某处声明你是那个图书馆的作者。