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ファイルのインスタンスコードに包装しました。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。