首頁 >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