在Java中解析命令行参数的好方法是什么?
例如,这是你commons-cli
用来解析2个字符串参数的方法:
import org.apache.commons.cli.*;
public class Main {
public static void main(String[] args) throws Exception {
Options options = new Options();
Option input = new Option("i", "input", true, "input file path");
input.setRequired(true);
options.addOption(input);
Option output = new Option("o", "output", true, "output file");
output.setRequired(true);
options.addOption(output);
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
CommandLine cmd;
try {
cmd = parser.parse(options, args);
} catch (ParseException e) {
System.out.println(e.getMessage());
formatter.printHelp("utility-name", options);
System.exit(1);
}
String inputFilePath = cmd.getOptionValue("input");
String outputFilePath = cmd.getOptionValue("output");
System.out.println(inputFilePath);
System.out.println(outputFilePath);
}
}
从命令行使用:
$> java -jar target/my-utility.jar -i asd
Missing required option: o
usage: utility-name
-i,--input <arg> input file path
-o,--output <arg> output file
问题内容: 如果我想解析该怎么办: 我想要的结果是: 我更喜欢使用Apache Commons CLI ,但是文档对我上面提到的情况有些不清楚。具体来说,文档没有告诉您如何处理我在下面指定的第3种类型的选项: 我希望Apache Commons CLI可以正常工作,但是如果这些args没有选项前缀,仍然可以将常规args传递给程序。也许可以,但是文档没有这么说,因此在我阅读它时… 问题答案: 您可
本文向大家介绍python 如何利用argparse解析命令行参数,包括了python 如何利用argparse解析命令行参数的使用技巧和注意事项,需要的朋友参考一下 命令行参数工具是我们非常常用的工具,比如当我们做实验希望调节参数的时候,如果参数都是通过硬编码写在代码当中的话,我们每次修改参数都需要修改对应的代码和逻辑显然这不太方便。比较好的办法就是把必要的参数设置成通过命令行传入的形式,这样我
在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。如果命令行参数纯粹自己写代码解析,对于比较复杂的,还是挺费劲的。在 go 标准库中提供了一个包:flag,方便进行命令行解析。 注:区分几个概念 命令行参数(或参数):是指运行程序提供的参数 已定义命令行参数:是指程序中通过flag.Xxx等这种形式定义了的参数
问题内容: 我试图在Windows 7 64位的Netbeans 7.1 Java项目中设置命令行参数。 Netbeans没有传递我给它的参数。 我转到-> -> ->并在“自变量”旁边键入自变量,但是自变量未传递到程序。我如何通过他们? 问题答案: 我猜您正在使用(或shift-F6)而不是运行文件。NetBeans 7.1帮助文件(F1是您的朋友!)说明Arguments参数: 添加参数以在应
建立一个解析器 import argparse parser = argparse.ArgumentParser( description='This is a PyMOTW sample program', ) 简单示例 # argparse_short.py import argparse parser = argparse.ArgumentParser(description='
问题内容: 如果我期望像001或999这样的东西(这次让我们将期望值限制为001 … 999范围),并且传递了其他一些参数,并且想忽略任何意外内容,那么这将是处理命令行参数的简单表达式? 我知道,例如,如果我需要确定是否在参数之间传递了“ debug”,它将像这样: 如何确定是否通过了009或575? 所有这些都是预期的电话: 在这一点上,我不在乎这样的电话: …第一个-由于存在多个“数字”参数;