2011-07-21 11 views
0

args配列の引数にmain以外の引数にアクセスする方法はありますか?私はDisgruntled BombのJavaで微妙に変化しています。私はcliの引数を取得し、それらの関数をランダムな順序で呼び出すことができるようにしたいと考えています。 SunのJDKでJavaでのリフレクションによるcli引数の取得

public class Bomb{ 

    static { 
    main(new String[]{"arg"}); 
    System.exit(0); 
    } 

    public static void main(String[] args){ 
    for(int i = 0; i < args.length; i++){ 
     System.out.printf("arg %d: %s%n",i,args[i]); 
    } 
    } 
} 
+0

なぜ静的初期化子で 'System.exit(0)'を呼び出すのですか? – Jeffrey

+0

最初に静的なイニシャライザがあるのはなぜですか? –

答えて

4

、あなたはsun.java.commandプロパティにアクセスすることができます

String args = System.getProperty("sun.java.command"); 

はしかし、あなたは、引数を自分で分割する必要があり、それはまた、他のJVMに非常にポータブルではありません。

+2

あなたの答えは、IBMの実装にも適用されます。 –

1

私はそれはあなたが探しているものかどうかを知りませんが、ApacheのCLI(コマンドラインインタフェース)を使用すると、

-nameOfArgument1 valueOfArgument1 -nameOfArgument2 valueOfArgument2.... 
0

はちょうど別の主なメソッドを実装する「古い」Unixの方法で引数を渡すことができますあなたが必要とするランダム化で元のメインを呼び出すためにそれを使用しますか?それとも、コールがまったく同じである必要がありますか?その場合、どのようにして主な自己への呼び出しを止めますか?

関連する問題