import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.ArgumentParser; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparsers; import net.sourceforge.argparse4j.inf.Subparser; public class MainApp { public static void main(String[] args) { ArgumentParser parser = ArgumentParsers.newFor("app").build(); Subparsers subparsers = parser.addSubparsers().dest("subcommand"); Subparser command1Parser = subparsers.addParser("command1"); command1Parser.addArgument("--option1").setDefault("default1").constMetavar("OPTION1"); command1Parser.addArgument("arg1").type(Integer.class); Subparser command2Parser = subparsers.addParser("command2"); command2Parser.addArgument("--option2").type(Arguments.fileType().verifyExists().verifyIsFile()).required(true); command2Parser.addArgument("arg2").nargs("*"); Namespace namespace = null; try { namespace = parser.parseArgs(args); String subcommand = namespace.getString("subcommand"); if (subcommand.equals("command1")) { executeCommand1(namespace); } else if (subcommand.equals("command2")) { executeCommand2(namespace); } } catch (Exception e) { parser.handleError(e); parser.printHelp(); System.exit(1); } } private static void executeCommand1(Namespace namespace) { String option1 = namespace.getString("option1"); int arg1 = namespace.getInt("arg1"); System.out.println("Executing command1..."); System.out.println("Option1: " + option1); System.out.println("Arg1: " + arg1); } private static void executeCommand2(Namespace namespace) { String option2 = namespace.getString("option2"); List<String> arg2 = namespace.getList("arg2"); System.out.println("Executing command2..."); System.out.println("Option2: " + option2); System.out.println("Arg2: " + arg2); } } <dependencies> <dependency> <groupId>net.sourceforge.argparse4j</groupId> <artifactId>argparse4j</artifactId> <version>0.9.0</version> </dependency> </dependencies>


上一篇:
下一篇:
切换中文