这里我们通过Apache Commons CLI来完成目标功能,废话不多说直接上代码
所需的maven依赖
<dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.4</version> </dependency>
这里我们贴出主类代码
Options opts = new Options(); opts.addOption("h", false,"help"); Option portOption = OptionBuilder.withArgName("args") .withLongOpt("port").hasArg() .create("p"); opts.addOption(portOption); Option fileOption = OptionBuilder.withArgName("args") .withLongOpt("file").hasArg() .create("f"); opts.addOption(fileOption); Option kafkaHostOption = OptionBuilder.withArgName("args") .withLongOpt("kafkaHost").hasArg() .create("kH"); opts.addOption(kafkaHostOption); Option kafkaPortOption = OptionBuilder.withArgName("args") .withLongOpt("kafkaPort").hasArg() .create("kP"); opts.addOption(kafkaPortOption); Option kafkaTopicOption = OptionBuilder.withArgName("args") .withLongOpt("kafkaTopic").hasArg() .create("kT"); opts.addOption(kafkaTopicOption); BasicParser parser = new BasicParser(); CommandLine cl; try { cl = parser.parse(opts, args); if (cl.getOptions().length > 0) { if (cl.hasOption('h')) { HelpFormatter hf = new HelpFormatter(); hf.printHelp("Options", opts); } else { //String ip = cl.getOptionValue("i"); String port = cl.getOptionValue("p"); String file = cl.getOptionValue("f"); String kafkaHost = cl.getOptionValue("kH"); String kafkaPort = cl.getOptionValue("kP"); String kafkaTopic = cl.getOptionValue("kT"); GetInfo getInfo = new GetInfo(); getInfo.getAndZgrab(file,port,kafkaHost,kafkaPort,kafkaTopic); } } else { System.out.println("参数为空"); } } catch (Exception e) { e.printStackTrace(); }
记得将上述代码放到main函数中,将解析args[],这样将程序打包成jar文件后就可以实现我们的需求了。
执行命令:
java -jar jarName.jar -f filename -p port - kH kafkaHost -kP kafkaPort -kT kafkaTopic
如果忘记了都需要传递什么参数,可以通过 java -jar jarName.jar -h 获取参数内容
总结
以上所述是小编给大家介绍的Java程序打包成带参数的jar文件实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。