1

コマンドライン引数を使用して実行するプログラムのメソッドを選択するにはどうすればよいですか? たとえば、自分のプログラムで Moon.jpg という画像を処理する場合、コマンド ラインの -S Moon.jpg で Scale メソッドを呼び出すにはどうすればよいでしょうか? または -HI Moon.jpg は画像を水平方向に反転し、反転しますか? 私はいくつかのメソッドを書いており、プログラムを正常に実行すると機能します。

4

4 に答える 4

3

次のような関数で引数を解析できます。

private void parseArguments(String[] args)
  {
    int i = 0;
    String curArg;

    while (i < args.length && args[i].startsWith("-"))
    {
      curArg = args[i++];

      if ("-S".compareTo(curArg) == 0)
      {
        if (i < args.length)
        {
            String image = args[i++];
            processImage()
        }
        else
        {
          // ERROR
        }
      }
    } 
  }

メイン メソッドには、スペース文字で分割された引数を含む String[] args が常に必要です。コマンドライン引数を解析するために使用できるライブラリもたくさんあります。この方法は、Apaches CLI ライブラリが使用する方法と非常によく似ています (もちろん、そのライブラリにはさらに多くの機能がありますが、パーサーはこのロジックを使用します)。

于 2012-08-01T18:53:10.307 に答える
3

http://commons.apache.org/cli/

これは役立つはずです。使用方法は次のとおりです。 http://commons.apache.org/cli/usage.html

于 2012-08-01T18:31:52.910 に答える
0

渡された引数を読み取って、後続の値を読み取って、必要なことを実行してみませんか。つまり、

java yourprogram -a1 something -a2 somethingelse

そしてあなたのプログラムで

public static void main(String[] args){
 for(int i=0;i<args.length;i++){
  switch(args[i]){//you can use if-else to deal with string...
  case "-a1":read args[i+1] to get value to do somethng
  case "-a2": read args[i+1] to get value to do something else
 }
}
于 2012-08-01T18:55:00.827 に答える
0

目的ごとに異なるメソッドを記述し、コマンド入力に基づいて if/else 条件を設定する必要がある場合があります。

于 2012-08-01T18:33:18.353 に答える