使用JCommander的参数选项

时间:2014-07-04 08:48:59

标签: java command-line-arguments jcommander

我是JCommander的新用户,我试图在 JAVA命令行应用中使用它。

我做的最好的事情是我已经创建了我的CommandLineArguments课程。

现在,我试图在命令行中打印带有参数的选项。但我想我错过了一些东西。

这是我的主要课程:

public static void main(String[] args) {


    String[] argv={"-h","host"};
    CommandLineArguments arguments=new CommandLineArguments();
    JCommander commands= new JCommander(arguments);

    try {

        commands.parse(argv);

        System.out.println(commands.getParsedCommand());


    } catch (Exception e) {
        System.out.println(e.getMessage());
        commands.usage();
    }
}

运行此课程后,我得到:null作为输出。似乎getParsedCommand()似乎没有使用它。

有人可以告诉我如何正确使用JCOmmmander方法,这样我就可以看到用参数给出的选项了吗?

我在这里尝试做的是,一旦用户运行java -jar myApp.jar -port portNumber -h hostname -d database -c collection我想获得portNumber主机名数据库和集合值,这样我就可以建立连接并发送查询。

希望我足够清楚。

伊斯梅尔

1 个答案:

答案 0 :(得分:2)

您需要区分commandsparameters。在您给出的示例中,您只需要参数。

first chapter of the JCommander documentation提供了一个如何处理参数的清晰示例。如果您的CommandLineArguments类在示例中进行了注释,则在调用parse(argv)后,应在该类中正确设置参数值。

命令在a later chapter dealing with more complex command-line syntaxes中解释。