Java程序打包成帶參數(shù)的jar文件實例代碼
這里我們通過Apache Commons CLI來完成目標(biāo)功能,廢話不多說直接上代碼
所需的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("參數(shù)為空");
}
} catch (Exception e) {
e.printStackTrace();
}
記得將上述代碼放到main函數(shù)中,將解析args[],這樣將程序打包成jar文件后就可以實現(xiàn)我們的需求了。
執(zhí)行命令:
java -jar jarName.jar -f filename -p port - kH kafkaHost -kP kafkaPort -kT kafkaTopic
如果忘記了都需要傳遞什么參數(shù),可以通過 java -jar jarName.jar -h 獲取參數(shù)內(nèi)容
總結(jié)
以上所述是小編給大家介紹的Java程序打包成帶參數(shù)的jar文件實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot結(jié)合Redis實現(xiàn)序列化的方法詳解
Spring提供了一個RedisTemplate來進(jìn)行對Redis的操作,但是RedisTemplate默認(rèn)配置的是使用Java本機(jī)序列化。如果要對對象操作,就不是那么的方便。所以本文為大家介紹了另一種SpringBoot結(jié)合Redis實現(xiàn)序列化的方法,需要的可以參考一下2022-06-06
Java 生成隨機(jī)單據(jù)號的實現(xiàn)示例
本文主要介紹了Java 生成隨機(jī)單據(jù)號的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Java更新調(diào)度器(update scheduler)的使用詳解
Java更新調(diào)度器是Java中的一個特性,可以自動化Java應(yīng)用程序的更新過程,它提供了一種方便的方式來安排Java應(yīng)用程序的更新,確保其與最新的功能、錯誤修復(fù)和安全補(bǔ)丁保持同步,本文將深入介紹如何使用Java更新調(diào)度器,并解釋它對Java開發(fā)人員和用戶的好處2023-11-11
SpringBoot連接Nacos集群報400問題及完美解決方法
這篇文章主要介紹了解決SpringBoot連接Nacos集群報400問題?,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法
本文主要介紹了Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Spring配置數(shù)據(jù)源的三種方式(小結(jié))
本文主要介紹了Spring配置數(shù)據(jù)源的三種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
Java如何使用itext向PDF插入數(shù)據(jù)和圖片
最近項目中使用到Java實現(xiàn)寫入PDF文件,這篇文章主要給大家介紹了關(guān)于Java如何使用itext向PDF插入數(shù)據(jù)和圖片的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

