1. 程式人生 > >如何將java程式打包成帶引數的jar檔案

如何將java程式打包成帶引數的jar檔案

這裡我們通過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 獲取引數內容