我有一个示例代码,我想下载并运行它,问题是它使用JCommander加载了一些配置,我没有配置文件,但它想加载一个,所以我想知道;我如何使用JCommander,我阅读了文档,并根据该站点提供了一个用于解析命令行参数的框架,但是我真的不明白这意味着什么,这个错误确实使我无法执行我的项目,这是代码请求对于.conf
文件:
BasicConfigurator.configure(); // TODO: config from options
// Parse the command line options
CliOptions options = new CliOptions();
new JCommander(options, args);
if (StringUtils.isBlank(options.configFile))
{
options.configFile = "/etc/car-counter/car-counter.conf";
}
// Read in the configuration
Wini ini = new Wini();
ini.getConfig().setMultiOption(true);
ini.load(new File(options.configFile));
new DefaultProcessor(ini).process();
这是CliOption类
public class CliOptions
{
@Parameter(names = { "-c", "--config" }, description = "Sets the location of the configuration file.")
public String configFile;
}
最佳答案
JCommander背后的想法是拥有一个易于配置的选项,以提供命令行参数,其默认值等。
可以说您的程序需要一个int
参数jdbc_batch_size
,其默认值是2500
,并且可以选择覆盖该值。为此,请按照以下步骤操作,
您创建自己的类,将其命名为CommandLine
,
导入com.beust.jcommander.Parameter;
public class CommandLine {
@Parameter(names = "-batchSize", description = "JDBC batch size",required=false)
public int jdbc_batch_size=2500;
}
现在,在
CommandLine cli = new CommandLine();
方法中创建上述类main()
的对象创建指挥官对象
JCommander cmdr = new JCommander(cli, args);
现在,您可以通过
jdbc_batch_size
方法简单地访问main()
,int jdbc_batch_size = cli.jdbc_batch_size;
如果希望使用
override
默认值,则可以通过命令行提供-batchSize 1000
简而言之,
JComamnder
是如何工作的。关于java - 如何使用JCommander,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34675130/