4

I'd like something like the following to work:

public class A {
    @command_line_arg{"argname1"}
    static boolean x;

    @command_line_arg{"argname2"}
    static List<String> y;

    void main(String[] args) {
        /* perhaps a call such as parseArgs(); here */
        System.out.println("got argname1 = " + x);
        System.out.println("got argname2 = " + y);
    }
}

What library do I need to use?

(somewhat related to this.)

4

3 に答える 3

2

(@ fgeの回答に基づく。)

JCommanderを静的に使用できます。

public class A {

    @Parameter(names = "-argname1")
    static boolean x;
    @Parameter(names = "-argname2", variableArity = true)
    static List<String> y;

    @Parameter
    public static List<String> remainingParameters;

    void main(String[] args) {
        new JCommander(A.class.newInstance(), args);
        System.out.println("got argname1 = " + x);
        System.out.println("got argname2 = " + y);
    }
}
于 2013-02-04T09:22:03.487 に答える
1

JCommanderが役に立つかもしれません。注釈を使用してすべてのコマンド ライン引数を記述し、オプション/ヘルプ テキストを生成します。

Web サイトにある例を引用すると、次のようになります。

public class JCommanderExample {
  @Parameter
  private List<String> parameters = new ArrayList<String>();

  @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
  private Integer verbose = 1;

  @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
  private String groups;

  @Parameter(names = "-debug", description = "Debug mode")
  private boolean debug = false;
}
于 2013-02-03T17:01:27.203 に答える
1

klab-commons-cliを試すことができます。これは、Apache commons-cli に注釈を追加します。配布用の jar はありません。ソース コードを使用するだけです。commons-cli を利用しないが、配布ライブラリを提供する代替手段はargs4jです。

于 2013-02-03T11:13:24.600 に答える