Java程序打包成带参数的jar文件实例代码

时间:2022-09-23 07:25:18

这里我们通过Apache Commons CLI来完成目标功能,废话不多说直接上代码

所需的maven依赖

?
1
2
3
4
5
<dependency>
   <groupId>commons-cli</groupId>
   <artifactId>commons-cli</artifactId>
   <version>1.4</version>
</dependency>

这里我们贴出主类代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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文件后就可以实现我们的需求了。

执行命令:

?
1
java -jar jarName.jar -f filename -p port - kH kafkaHost -kP kafkaPort -kT kafkaTopic

如果忘记了都需要传递什么参数,可以通过 java -jar jarName.jar -h 获取参数内容

总结

以上所述是小编给大家介绍的Java程序打包成带参数的jar文件实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://blog.csdn.net/u012386386/article/details/78088853