这应该是非常简单,但我不知道为什么它不工作。我正在尝试使用apachecommons cli库传递带有名称的参数(这样我就可以按任何顺序传递参数),但它似乎不起作用。我想传递eclipseide的参数。我知道这部分不是问题所在,因为我可以打印args[0]类型的参数。
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
public class MainClass {
public static void main(String[] args) throws ParseException {
System.out.println(args[0]);
Options options = new Options();
options.addOption("d", false, "add two numbers");
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse( options, args);
if(cmd.hasOption("d")) {
System.out.println("found d");
} else {
System.out.println("Not found");
}
}
上面的行是完全一样的例子给出了网上,但我不知道为什么它不工作。我从一天开始就在挣扎。请帮我把哪里弄错了。
1条答案
按热度按时间ncecgwcz1#
根据示例,参数的名称应该出现在命令行中
无价值的财产
相应的代码是:
在这种情况下,正确的调用是:
ls -a
或者ls --all
用空格分隔值相应代码为:
电话是:
值之间用等号分隔
代码是:
电话是: