Мы пытаемся записать в STDIN команду, используя исполняемый файл Runtime в Java. Мы используем cmd /c для выполнения команды, так как Runtime exec не распознает ее без cmd /c. Это должно записать «q» и новую строку в файл с именем output.txt. Мы можем найти файл, но в нем нет содержимого.
String cmd = "cmd /c TYPE CON>output.txt";
try{
process = Runtime.getRuntime().exec(cmd, null);
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
bufferedWriter.write("q");
bufferedWriter.newLine();
bufferedWriter.flush();
bufferedWriter.close();
}catch(Exception e){}
Мы также пытались использовать выходной поток напрямую и безуспешно записывать байты.
Это должна быть команда STDIN, мы неправильно понимаем process.getOutputStream()
Мы проверили, что эта же команда работает в командной строке.
Сейчас мы на Windows 10
Мы пробовали решения, предоставленные stackoverflow и другими сайтами, но безрезультатно.
catch
. По крайней мере, поставьте тудаe.printStackTrace();
. - person VGR   schedule 28.11.2017exec
и используйтеProcessBuilder
для создания процесса. Также разбейтеString arg
наString[] args
, чтобы учесть такие вещи, как пути, содержащие пробелы. 2) Не игнорируйте исключения! Они сообщают нам, что именно пошло не так. Если ведение журнала не реализовано, по крайней мере вызовитеThrowable.printStackTrace()
3) Мы попробовали решения, предоставленные с stackoverflow и других сайтов .. - person Andrew Thompson   schedule 29.11.2017