2016-01-19 1 views
2

Моя проблема в том, что после открытия cmd из java-кода я хочу, чтобы пользователь мог вводить как в приложениях C++ ms dos. Когда пользователь пишет sth, например, «dir» или «cd ..», я хочу выполнить эти коды с помощью java. Проблема в каждой команде java снова открывает cmd. Также я не могу выполнять команды. Мой код запуска cmd ниже;Открытие cmd и ожидания ввода пользователем команд cmd и exec из java

final ArrayList<String> commands = new ArrayList<>();     

    commands.add("cmd.exe"); 
    commands.add("/C"); 
    commands.add("start"); 
    ProcessBuilder pb = new ProcessBuilder(commands); 
    Process process = pb.start(); 

ответ

1

Вот некоторые очистили код от How to open the command prompt and insert commands using Java?

 

public static void main(String[] args) { 
    try { 
     String ss = null; 
     Runtime obj = null; 
     Process p = Runtime.getRuntime().exec("cmd.exe"); 


     //write a command to the output stream 
     BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream())); 
     writer.write("dir"); 
     writer.flush(); 

     //Get the input and stderror 
     BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); 


     System.out.println("Here is the standard output of the command:\n"); 
     while ((ss = stdInput.readLine()) != null) { 
      System.out.println(ss); 
     } 

     System.out.println("Here is the standard error of the command (if any):\n"); 
     while ((ss = stdError.readLine()) != null) { 
      System.out.println(ss); 
     } 

    } catch (IOException e) { 
     System.out.println("FROM CATCH" + e.toString()); 
    } 

} 

+0

Спасибо. Хотя он не открывает окно cmd из netbeans. Возможно, когда я экспортирую проект в качестве банки, возможно, он откроет cmd? –

+0

Также он не записывает выходные данные в окно журнала netbeans, например, когда я пытаюсь запустить dir и т. Д. –

+0

Успешно ли это при вызове cmd.exe? –

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