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

     } 
    } 
} 

Side Примечание: This предыдущий SO пост может быть стоит идти до конца.

0

Вы сравниваете массив со строкой. Измените его на:

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

Вы пытаетесь сравнить String [] со строкой.

Попробуйте вместо этого:

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

Вы пропустите индекс массива в состоянии if:

argv[i].equals("-h") 
Смежные вопросы