如何解析Java中的命令行参数?

在Java中解析命令行参数的好方法是什么?


检查这些:

  • http://commons.apache.org/cli/
  • http://www.martiansoftware.com/jsap/
  • 或者推出自己的:

  • http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

  • 例如,这是你如何使用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);
                return;
            }
    
            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
    

    看看最近的JCommander。

    我创造了它。 我很高兴收到问题或功能要求。


    我一直在尝试维护Java CLI解析器的列表。

  • 航空公司
  • 活动叉:https://github.com/rvesse/airline
  • argparse4j
  • argparser
  • args4j
  • clajr
  • CLI-解析器
  • CmdLn
  • 命令行
  • DocOpt.java
  • 海豚getopt
  • DPML CLI(Jakarta Commons CLI2 fork)
  • Matthias Laux博士
  • Jakarta Commons CLI
  • jargo
  • jargp
  • jargs
  • Java的getopt的
  • jbock
  • JCLAP
  • jcmdline
  • jcommander
  • jcommando
  • jewelcli(由我撰写)
  • 简单的JOpt
  • 司法制度评估方案
  • naturalcli
  • Object Mentor CLI文章(更多关于重构和TDD)
  • 解析-CMD
  • ritopt
  • 罗普
  • TE代码命令
  • picocli具有ANSI彩色使用帮助和自动完成功能
  • 链接地址: http://www.djcxy.com/p/30419.html

    上一篇: How do I parse command line arguments in Java?

    下一篇: What's the best way to parse command line arguments?