1

ubuntuでコンソールから引数を使いたい

./myTool -ip 1.2.3.4

私のコードで 1.2.3.4 をタック\使用するにはどうすればよいですか?

public static void main(String[] argv) throws Exception
{


    for(int i=0;i<argv.length;i++)
    {
        if (argv[i].equals("-ip"))
        {

         ping(80,"The ip that i want(1.2.3.4)")
        }
     }
}
4

3 に答える 3

2

試す:

public static void main(String[] argv) throws Exception
{
    for(int i=0;i<argv.length;i++)
    {
        if (argv[i].equals("-ip") && argv.length > i+1)
        {
            ping(80, argv[i+1]);
        }
    }
}

pingもちろん、実装したと仮定します。

于 2013-04-18T09:26:10.917 に答える
2

コマンドライン引数を解析するためのより一般的なアプローチについては、既存のフレームワークの 1 つを使用することをお勧めします。それらはすべての面倒な作業を行います。

JOpt Simpleを見てみましょう。OpenJDK。

于 2013-04-18T09:30:32.510 に答える
2

必要な動作を独自の設計のオブジェクトにカプセル化するか、Apacheのこのような既存のものを使用することができます。

それらがペアで表示されることを確認する必要があります。このようなもの:

public static Map<String, String> getArgsMap(String [] args) { 
    Map<String, String> pairs = new HashMap<String, String>();
    if ((args != null) && (args.length > 1) && (args.length % 2) == 0) {
        for (int i = 0; i < args.length; i += 2) {
            pairs.put(args[i], args[i+1]);
        }
    }
    return pairs;
}
于 2013-04-18T09:32:04.333 に答える