首页 >Java >java教程 >如何有效解析Java中的命令行参数?

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-23 01:14:10365浏览

How to Effectively Parse Command Line Arguments in Java?

在 Java 中解析命令行参数

解析命令行参数是使用 Java 应用程序时的一项常见任务。存在多种方法可以有效地实现此目的。

用于解析的库

  • Apache Commons CLI:该库提供了一组用于解析命令行参数的全面选项,包括对必需和可选标志、参数验证和错误的支持
  • JSAP: Java 简单参数解析器 (JSAP) 为解析参数提供了更简单、更轻量级的选项。它支持命名参数和位置参数,以及选项分组。

滚动你自己的

如果您不想使用外部库,您可以使用以下命令滚动您自己的命令行参数解析器Java 的内置类。 java.util.Scanner 类允许您从命令行读取输入并将其解析为适当的数据类型。

示例:使用 Commons CLI 解析字符串

import org.apache.commons.cli.*;

public class Main {

    public static void main(String[] args) throws Exception {

        // Define command line options
        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);

        // Parse command line arguments
        CommandLineParser parser = new DefaultParser();
        CommandLine cmd = null; // Bad practice, only for demonstration purposes
        try {
            cmd = parser.parse(options, args);
        } catch (ParseException e) {
            System.out.println(e.getMessage());
            HelpFormatter formatter = new HelpFormatter();
            formatter.printHelp("utility-name", options);
            System.exit(1);
        }

        // Retrieve parsed values
        String inputFilePath = cmd.getOptionValue("input");
        String outputFilePath = cmd.getOptionValue("output");

        // Use the parsed arguments
        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

以上是如何有效解析Java中的命令行参数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn