2013-04-18 2 views
1

я хочу использовать аргументы из консоли в UbuntuИспользование аргумента из консоли JAVA

./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)") 
     } 
    } 
} 
+0

Какое исключение? – Sanghita

ответ

2

Для более общего подхода к разбору аргументов cmdline я бы рекомендовал использовать одну из уже существующих фреймворков - они делают весь тяжелый подъем для вас.

Посмотрите на JOpt Simple - этот используется, например. OpenJDK.

2

Try:

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, конечно.

2

Вы можете либо инкапсулировать поведение, в котором вы нуждаетесь, в объект своей собственной конструкции, либо использовать тот, который уже существует, например this one от 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; 
} 
Смежные вопросы