2

ubuntu コンソールから引数を実行しようとしています。

./myTool -h

私が得るのは「1」のプリントだけです。

誰か助けてください。

ありがとう !

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

    System.out.println("1");
    for(int i=0;i<argv.length;i++)
    {
        if (argv.equals("-h"))
        {
            System.out.println("-ip   target ip address\n");
            System.out.println("-t    time interval between each scan in milliseconds\n");
            System.out.println("-p    protocol type [UDP/TCP/ICMP]\n");
            System.out.println("-type scan type [full,stealth,fin,ack]\n");
            System.out.println("-b    bannerGrabber status\n");

        }

}

4

4 に答える 4

2

argv配列全体です。一致させようとしているのは、文字列を含む配列の内容全体-hです。これを試してください:

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

    System.out.println("1");
    for(int i=0;i<argv.length;i++)
    {
        if (argv[i].equals("-h"))
        {
            System.out.println("-ip   target ip address\n");
            System.out.println("-t    time interval between each scan in milliseconds\n");
            System.out.println("-p    protocol type [UDP/TCP/ICMP]\n");
            System.out.println("-type scan type [full,stealth,fin,ack]\n");
            System.out.println("-b    bannerGrabber status\n");

        }
     }
}

補足:この以前の SO 投稿も、検討する価値があるかもしれません。

于 2013-04-18T08:22:58.963 に答える
2

if次の条件で配列インデックスがありません。

argv[i].equals("-h")
于 2013-04-18T08:23:30.463 に答える
0

配列と文字列を比較しています。次のように変更します。

   if (argv[i].equals("-h"))
于 2013-04-18T08:22:45.150 に答える
0

String[] と String を比較しようとしています。

代わりに試してください:

    if (argv[i].equals("-h"))
于 2013-04-18T08:22:58.040 に答える