2013-04-18 108 views
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"); 

     } 

}

回答

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"); 

     } 
    } 
} 

側面說明:This以前SO後也可能是值得的經歷。

0

你比較字符串數組。將其更改爲:

if (argv[i].equals("-h")) 
0

您嘗試將String []與String進行比較。

嘗試代替:

if (argv[i].equals("-h")) 
2

你錯過在if條件數組索引:

argv[i].equals("-h")