У меня есть метод
final ProcessBuilder processBuilder = new ProcessBuilder(this.cmd);
processBuilder.redirectErrorStream(true);
try {
final Process process = processBuilder.start();
try (final BufferedReader reader =
new BufferedReader(
new InputStreamReader(
process.getInputStream()
)
)
) {
while (reader.ready()) {
System.out.println(reader.readLine());
}
process.waitFor(this.timeOut, TimeUnit.SECONDS);
}
} catch (final Exception exc) {
throw new IllegalStateException("Terminal command execution exception", exc);
}
Этот метод берет cmd (массив строк) из конструктора, а затем выполняет его.Это значение cmd
new String[]{"cat","$(cat /home/Downloads/tmp/aqnYtUSVFp.txt)",">","/home/Downloads/hello.ts"}
Таким образом, вся команда выглядит следующим образом cat $(cat home/Downloads/tmp/aqnYtUSVFp.txt) > /home/Downloads/hello.ts
Она работает нормально, если я запускаю ее в терминале, но ProcessBuilder показывает мне следующую ошибку
cat: '$(cat /home/Downloads/aqnYtUSVFp.txt)': No such file or directory
cat: '>': No such file or directory
cat: /home/Downloads/hello.ts: No such file or directory
Что я пропустил.Почему ProccBuilder не распознает эту команду?