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()
就会得到值”这就是我想要的答案。