这里我们通过apache commons cli来完成目标功能,废话不多说直接上代码
所需的maven依赖
commons-cli
commons-cli
1.4
这里我们贴出主类代码
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文件实例代码,希望对大家有所帮助
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!