如何将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 获取参数内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值