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-06Java 生成隨機(jī)單據(jù)號的實現(xiàn)示例
本文主要介紹了Java 生成隨機(jī)單據(jù)號的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09Java更新調(diào)度器(update scheduler)的使用詳解
Java更新調(diào)度器是Java中的一個特性,可以自動化Java應(yīng)用程序的更新過程,它提供了一種方便的方式來安排Java應(yīng)用程序的更新,確保其與最新的功能、錯誤修復(fù)和安全補(bǔ)丁保持同步,本文將深入介紹如何使用Java更新調(diào)度器,并解釋它對Java開發(fā)人員和用戶的好處2023-11-11SpringBoot連接Nacos集群報400問題及完美解決方法
這篇文章主要介紹了解決SpringBoot連接Nacos集群報400問題?,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法
本文主要介紹了Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Spring配置數(shù)據(jù)源的三種方式(小結(jié))
本文主要介紹了Spring配置數(shù)據(jù)源的三種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01Java如何使用itext向PDF插入數(shù)據(jù)和圖片
最近項目中使用到Java實現(xiàn)寫入PDF文件,這篇文章主要給大家介紹了關(guān)于Java如何使用itext向PDF插入數(shù)據(jù)和圖片的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01