Runtime.exec
не работает таким образом. Вы не можете передавать несколько таких команд cmd.exe.
Runtime.exec
позволяет выполнить один процесс со списком аргументов. Он не предоставляет никаких операций «оболочки» (например, 2>&1
). Вы должны сделать такое перенаправление ввода-вывода самостоятельно, используя потоки ввода / вывода.
Это похоже на вызов функции main
другой программы.
Вы можете попробовать `Runtime.exec (новая строка [] {" cmd.exe "," / c "," dir "," C: \\ "});
Но на самом деле, если вам нужны списки файлов, вам гораздо лучше использовать средства класса java.io.File
, которые не будут зависеть от особенностей операционной системы.