Мой вопрос касается метода org.apache.commons.exec.DefaultExecutor.execute (CommandLine) в apache commons.Выполнение инструмента командной строки из java варьируется от командной строки?
Это codebit для выполнения FFmpeg:
command = FFMPEG_DIR + "ffmpeg -i \"" + file.getAbsolutePath() + "\"";
DefaultExecutor executor = new DefaultExecutor();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PumpStreamHandler streamHandler = new PumpStreamHandler(baos);
executor.setStreamHandler(streamHandler);
CommandLine commandLine = CommandLine.parse(command);
executor.execute(commandLine);
Когда я исполняю инструмент командной строки E.C. FFmpeg из Java, как это:
/path_to_ffmpeg/ffmpeg -i "/My Media/Video/Day2/VIDEO.MOV"
Результатом FFmpeg является то, что он не может найти указанный файл для ввода
"/My Media/Video/Day2/VIDEO.MOV": No such file or directory
Если я выполнить команду в моей консоли точно такой же, как она работает без какие-то проблемы. Переименование папки «Мои медиа» на «MyMedia» устраняет проблему со стороны Java, но для меня это не подходит для использования.
Как я могу исправить это, не ограничивая пробелы от входного пути?
Как вы готовите 'CommandLine'? – aioobe
Я добавил код – itkevin