通过CLI在Java中传递参数

Nam*_*wal 2 java

通过CLIJava中传递参数时,我们通常像

java -cp jar classname "args[0]" "args[1]"
Run Code Online (Sandbox Code Playgroud)

我想传递诸如此类的参数 --host hostname --user username --password password

请帮助我实现这一目标。

提前致谢 !!

Vác*_*hár 7

您可以按如下方式使用commons-cli库:

import org.apache.commons.cli.*;

public class Main {


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

        Options options = new Options();

        Option host = new Option("h", "host", true, "host address");
        host .setRequired(true);
        options.addOption(host);

        Option user = new Option("u", "user", true, "user login");
        user.setRequired(true);
        options.addOption(user);

        Option password = new Option("p", "password", true, "user's password");
        password.setRequired(true);
        options.addOption(password);

        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("my-program", options);

            System.exit(1);
            return;
        }

        String inputHost = cmd.getOptionValue("host");
        String inputUser = cmd.getOptionValue("user");
        String inputPassword = cmd.getOptionValue("password");


    }

}
Run Code Online (Sandbox Code Playgroud)