Я пытаюсь запускать команды прямо через CMD в Windows (Терминал в Linux). У меня есть следующий код. Это действует очень странно. Во-первых, при запуске программа ничего не печатает. Во-вторых, при отладке и пошаговом выполнении программа печатает текст CMD по умолчанию и строку ввода. Наконец, я не могу писать в CMD, чтобы он выполнял команды. Вот мой код Я предполагаю, что это может быть проблема с многопоточностью, но я не знаком с Runtime.
Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("cmd");
InputStream iStream = p.getInputStream();
BufferedReader sReader = new BufferedReader(new InputStreamReader(iStream));
while(sReader.ready()) {
System.out.print((char)sReader.read());
}
OutputStream oStream = p.getOutputStream();
BufferedWriter sWriter = new BufferedWriter(new OutputStreamWriter(oStream));
sWriter.write("mkdir test");
sWriter.newLine();
while(sReader.ready()) {
System.out.print((char)sReader.read());
}
} catch(Exception e) {
e.printStackTrace();
}
И мой вывод при отладке и пошаговом выполнении (вывод не отображается при запуске)
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
D:\workspaces\Maven\Command Line>