2016-07-06 1 views
0

Так что это мой код:Попытка сделать инструмент CLI в Java работы

package ca.wax.main; 
import java.util.Arrays; 
import java.util.Scanner; 
public class Wax { 

static String commands[]; 

public static void main(String[]args){ 
    CommandMethods cm = new CommandMethods(); 
    commands = new String[3]; 
    int stringLength = commands.length; 
    commands[0] = "deauth"; 
    commands[1] = "exploit"; 
    commands[2] = "set"; 
    Scanner s = new Scanner(System.in); 
    String nextCommand; 



    System.out.println("Welcome to Wax!"); 
    System.out.println(); 
    System.out.println(); 
    System.out.println(); 
    do{ 
     System.out.println(); 
     System.out.print("Wax >"); 
     nextCommand= s.next(); 
      if (Arrays.asList(commands).contains(nextCommand)){ 
      if (commands[0]==nextCommand){ 
       cm.deauth(); 







      }else{ 
      System.out.println("Cannot find command, try again."); 
      } 

     } 
    }while(1==1); 

} 


} 

и другие классы не являются важными. Мне нужно знать, как создать цикл, который будет работать с контекстом, для которого я его использую. У меня нет опыта программирования интерфейса командной строки. Я также хочу сделать это с нуля. Поэтому, если у кого-нибудь из вас есть предложение, пожалуйста, помогите мне.

+0

Извините, это совершенно неясно, о чем вы спрашиваете. StackOverflow предназначен для вопросов и ответов, а не для общей обратной связи кода. Пожалуйста, прочитайте [как спросить] (http://stackoverflow.com/help/how-to-ask) и посмотрите, не можете ли вы реструктурировать это в вопрос с конкретным ответом. – dimo414

+0

Извините, я снова напишу этот вопрос. – laxerrrr

+0

знаете ли вы об Apache CLI? См. Https://commons.apache.org/proper/commons-cli/ - у него есть некоторые очень распространенные функции, поэтому вам не нужно начинать с нуля. – wemu

ответ

0

Я видел ваш ответ с новым вопросом. Я бы предложил изменить исходный вопрос, а не отвечать на ваш обновленный вопрос. Вы сказали, что хотите получить пользовательский ввод, выполнить команду, а затем снова запросить ввод. Вы можете сделать это, сделав функцию getCommand(), чтобы получить ввод от пользователя:

public static String getCommand() { 
    Scanner s = new Scanner(System.in); 
    boolean containsCommand; 
    String nextCommand; 
    do { 
     nextCommand = s.nextLine(); 
     containsCommand = false; 

     for (int i = 0; i < commands.length; i++) { 
      if (commands[i].equals(nextCommand) { 
       containsCommand = true; 
       return nextCommand; 
      }  
     } 
     if (!containsCommand) { 
      System.out.println("please enter valid option"); 
     } 
    while(!containsCommand); 
} 

Затем вызовите его следующим образом:

while (!exitFlag) { 
    String command = getCommand(); 
    if (command.equals("commandOne")) { 
     //do command one stuff 
    } // else if... 
} 

Это получит команду, выполнить команду, то loop обратно в команду get. Обратите внимание, что этот цикл может выполняться вечно, поэтому я бы рекомендовал добавить способ установить флаг выхода.

+0

Я переписываю вопрос прямо сейчас. – laxerrrr

+0

Спасибо, человек! Придется отлаживать его много, но теперь работает! – laxerrrr

+0

Я не знаю, где вы берете! ExitFlag boolean, но нормально – laxerrrr

Смежные вопросы