我是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主机名数据库和集合值,这样我就可以建立连接并发送查询。
希望我足够清楚。
伊斯梅尔
答案 0 :(得分:2)
您需要区分commands
和parameters
。在您给出的示例中,您只需要参数。
first chapter of the JCommander documentation提供了一个如何处理参数的清晰示例。如果您的CommandLineArguments
类在示例中进行了注释,则在调用parse(argv)
后,应在该类中正确设置参数值。
命令在a later chapter dealing with more complex command-line syntaxes中解释。