我正在使用apache commons cli来解析参数。 帮助输出:
usage: Code Generation
-d,--delete
-f,--factory <arg>
-o,--output <arg>
-p,--package <arg>
-r,--reasoner <arg>
我试图在运行配置参数选项卡中传递的参数是:
-f“FactoryName”-o“〜/ MyFolder”-p“generatedcode”
执行似乎停止了因为parsedOptions.getArgList()。size()返回0
解析代码的关键部分如下:
public static void main(String [] args) throws Exception {
CommandLine parsedOptions = parseArguments(args);
String outputFolderName = parsedOptions.getOptionValue("o");
File outputFolder = outputFolderName != null ? new File(outputFolderName) : new File("");
if (parsedOptions.getArgList().size() != 1) { // This should be false..
help();
System.exit(-1);
}
//Some other code
}
我该如何解决这个问题?
答案 0 :(得分:1)
如果您查看Eclipse运行配置,您将找到一个名为“Arguments”的选项卡。在那里,您可以指定应传递给您的程序的参数。有关详细信息,请参阅Eclipse manual。
之后,您正在使用CommandLine.getArgList()
来检查参数的数量,但这并不正确。其Javadoc说:
检索任何遗留的未识别选项和参数
但如果我理解正确,你想看看是否给出了特定的选项。为此,您可能需要查看hasOption()
或getOptionValue()
。
答案 1 :(得分:1)
创建运行配置时,您将看到Arguments选项卡,其中包含以下选项:
希望这会对你有所帮助。
干杯!!
答案 2 :(得分:0)
在Eclipse中启动应用程序后,您将拥有“运行配置”。 打开“运行配置”菜单(最简单的方法是在绿色“运行按钮”上下拉菜单。 选择应用的运行配置。 选择第二个选项卡“Arguments”并在页面顶部的输入字段中输入您的参数。 按申请,它应该工作。用调试器测试它。