Java 使用JCommander的参数选项

Java 使用JCommander的参数选项,java,command-line-arguments,jcommander,Java,Command Line Arguments,Jcommander,我是JCommander新手,我正试图在我的JAVA命令行应用程序中使用它 我做的第一件事是创建了我的CommandLineArguments类 现在,我试图打印命令行中带有参数的选项。但我想我错过了什么 这是我的主要课程: public static void main(String[] args) { String[] argv={"-h","host"}; CommandLineArguments arguments=new CommandLineArguments()

我是
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()
没有按应有的方式使用

有人能告诉我如何正确使用
jcommander
方法,以便我能看到带有参数的选项吗

这里我要做的是,一旦用户运行
java-jar myApp.jar-port portNumber-h hostname-d database-c collection
,我希望能够获得portNumber hostname数据库和collection值,以便建立连接并发送查询

希望我说得够清楚


Ismail

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

提供了一个关于如何处理参数的足够清晰的示例。如果您的
CommandLineArguments
类如示例所示进行了注释,则在调用
parse(argv)
后,应在该类中正确设置参数值


有关命令的说明,请参见。

文档中没有明确说明。在给定的示例中:
Assert.assertEquals(jct.verbose.intValue(),2)我们知道该值为
2
。当我们使用一个终端,但我们不知道给定的值时,我们如何得到这个值?对不起,我不理解你的困惑。只需调用
jct.verbose.intValue()
即可获得值。将你的
CommandLineArguments
类添加到问题中,它可能会给你一个更好的答案。好的,你刚刚回答了我的问题。谢天谢地,是的。好吧,当你告诉我:“只要调用
jct.verbose.intValue()
就会得到值”这就是我想要的答案。