如何让我的 Java CLI 解析库 Jopt Simple 解析一个没有任何选项的参数?
How do I make my Java CLI parsing library Jopt Simple parse an argument without any option?
所以我正在构建一个 Java CLI 应用程序,它将具有与 Windows 的目录类似的功能。我正在使用 jopt-simple 4.9 库来满足我的 CLI 解析需求,并且为了获取选项,它看起来非常简单......
public static void main(String[] args) throws Exception {
OptionParser parser = new OptionParser("a::b?*");
OptionSet options = parser.parse(args);
parser.accepts("a", "Display all");
parser.accepts("b", "Bare output without metadata");
parser.accepts("?", "Displays this help prompt");
但是如果我想 运行 我的应用程序不带任何参数怎么办?就像我 运行 dir 或 ls 显示本地内容一样。
如果我想 运行 我的应用程序没有任何选项怎么办?就像我只是告诉 dir 或 ls 我希望它打印出哪个目录一样。
好的,为了实现这一点,只需使用 JOpt 还解析非选项参数的事实:
OptionParser parser = new OptionParser("a::b?*");
parser.allowsUnrecognizedOptions();
// In case the user specifies a path instead of just running the command
// locally, create an array out of the parsed directory strings.
String[] dirStringArray = options.nonOptionArguments().toArray(new String[options.nonOptionArguments().size()]);
所以我正在构建一个 Java CLI 应用程序,它将具有与 Windows 的目录类似的功能。我正在使用 jopt-simple 4.9 库来满足我的 CLI 解析需求,并且为了获取选项,它看起来非常简单......
public static void main(String[] args) throws Exception {
OptionParser parser = new OptionParser("a::b?*");
OptionSet options = parser.parse(args);
parser.accepts("a", "Display all");
parser.accepts("b", "Bare output without metadata");
parser.accepts("?", "Displays this help prompt");
但是如果我想 运行 我的应用程序不带任何参数怎么办?就像我 运行 dir 或 ls 显示本地内容一样。 如果我想 运行 我的应用程序没有任何选项怎么办?就像我只是告诉 dir 或 ls 我希望它打印出哪个目录一样。
好的,为了实现这一点,只需使用 JOpt 还解析非选项参数的事实:
OptionParser parser = new OptionParser("a::b?*");
parser.allowsUnrecognizedOptions();
// In case the user specifies a path instead of just running the command
// locally, create an array out of the parsed directory strings.
String[] dirStringArray = options.nonOptionArguments().toArray(new String[options.nonOptionArguments().size()]);