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

 更新时间:2017年09月26日 09:16:06   作者:flyfy飞  
这篇文章主要介绍了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 获取参数内容

总结

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

相关文章

  • SpringBoot结合Redis实现序列化的方法详解

    SpringBoot结合Redis实现序列化的方法详解

    Spring提供了一个RedisTemplate来进行对Redis的操作,但是RedisTemplate默认配置的是使用Java本机序列化。如果要对对象操作,就不是那么的方便。所以本文为大家介绍了另一种SpringBoot结合Redis实现序列化的方法,需要的可以参考一下
    2022-06-06
  • Java实现五子棋游戏(控制台版)

    Java实现五子棋游戏(控制台版)

    这篇文章主要为大家详细介绍了Java控制台版实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Java 生成随机单据号的实现示例

    Java 生成随机单据号的实现示例

    本文主要介绍了Java 生成随机单据号的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • 一篇文章弄懂Java和Kotlin的泛型难点

    一篇文章弄懂Java和Kotlin的泛型难点

    这篇文章主要给大家介绍了如何通过一篇文章弄懂Java和Kotlin的泛型难点的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • MyBatis-Plus框架整合详细方法

    MyBatis-Plus框架整合详细方法

    MyBatis-Plus是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生这篇文章主要介绍了MyBatis-Plus框架整合,需要的朋友可以参考下
    2022-04-04
  • Java更新调度器(update scheduler)的使用详解

    Java更新调度器(update scheduler)的使用详解

    Java更新调度器是Java中的一个特性,可以自动化Java应用程序的更新过程,它提供了一种方便的方式来安排Java应用程序的更新,确保其与最新的功能、错误修复和安全补丁保持同步,本文将深入介绍如何使用Java更新调度器,并解释它对Java开发人员和用户的好处
    2023-11-11
  • SpringBoot连接Nacos集群报400问题及完美解决方法

    SpringBoot连接Nacos集群报400问题及完美解决方法

    这篇文章主要介绍了解决SpringBoot连接Nacos集群报400问题 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Java在创建文件时指定编码的实现方法

    Java在创建文件时指定编码的实现方法

    本文主要介绍了Java在创建文件时指定编码的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Spring配置数据源的三种方式(小结)

    Spring配置数据源的三种方式(小结)

    本文主要介绍了Spring配置数据源的三种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java如何使用itext向PDF插入数据和图片

    Java如何使用itext向PDF插入数据和图片

    最近项目中使用到Java实现写入PDF文件,这篇文章主要给大家介绍了关于Java如何使用itext向PDF插入数据和图片的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01

最新评论