Apache Commons CLI - 参数选项
参数选项在命令行上由其名称及其相应的值表示。例如,如果存在选项,则用户必须传递其值。考虑以下示例,如果我们将日志打印到某个文件,我们希望用户使用参数选项 logFile 输入日志文件的名称。
例子
CLITester.java
import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; public class CLITester { public static void main(String[] args) throws ParseException { Options options = new Options(); Option logfile = Option.builder() .longOpt("logFile") .argName("file" ) .hasArg() .desc("use given file for log" ) .build(); options.addOption(logfile); CommandLineParser parser = new DefaultParser(); CommandLine cmd = parser.parse( options, args); // has the logFile argument been passed? if(cmd.hasOption("logFile")) { //get the logFile argument passed System.out.println( cmd.getOptionValue( "logFile" ) ); } } }
输出
运行文件,同时传递 --logFile 作为选项,文件名作为选项的值,并查看结果。
java CLITester --logFile test.log test.log