3

我是新手,JCommander我正在尝试在我的JAVA Command Line Application中使用它。

我做的第一件事就是创建了我的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 主机名数据库和集合值,以便我可以建立连接并发送查询。

希望我足够清楚。

伊斯梅尔

4

1 回答 1

2

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

JCommander 文档的第一章提供了一个足够清晰的示例来说明如何处理参数。如果您的CommandLineArguments类如示例中那样注释,则应在调用后在该类中正确设置参数值parse(argv)

命令将在后面处理更复杂的命令行语法的章节中解释。

于 2014-07-04T09:06:28.410 回答