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 回答