выполнение Runtime.getRuntime.exec(строка cmd)

#java #video

#java #Видео

Вопрос:

Привет, я пытаюсь выполнить командную строку с помощью Runtime.getRuntime.exec (строка cmd).Что

на самом деле я пытаюсь извлечь I-кадры из видео с помощью MPlayer, и это

установлен в каталоге, отличном от каталога моей рабочей области eclipse.

Я использую Java-код, подобный приведенному ниже

 C:\Program Files\MPlayer for Windows mplayer file.mp4 -benchmark   -noframedrop -ao null -vo jpeg:outdir=iframes  -vf  framestep=I
  

фактическая команда для извлечения с использованием DOS является

 "mplayer file.mp4 -benchmark   -noframedrop -ao null -vo jpeg:outdir=iframes  -vf  framestep=I".
  

РАБОЧЕЕ пространство ECLIPSE находится на моем диске d:.И Mplayer находится в c:program filesMplayer для Windows.

Eclipse IDE отображает исключение как:-

 Exception in thread "main" java.io.IOException: Cannot run program "C:Program FilesMPlayer for Windows": CreateProcess error=5, Access is denied
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at myvideo1.main(myvideo1.java:39)
  

Любая помощь приветствуется.

Комментарии:

1. просто добавьте mplayer в свой PATH

2. Опубликуйте свой код, прямо сейчас кажется, что вы запускаете папку

3. я думаю, что это также может быть проблемой — вы пропустили набор косых черт?

4. эй, я допустил ошибку при вводе, я использовал только \ not \ Runtime.getRuntime().exec(«C:\Program Files \MPlayer для Windows mplayer file.mp4 -benchmark -noframedrop -ao null -vo jpeg:outdir=iframes -vf framestep=I «); Это единственная строка, которую я использую для извлечения i кадров.

5. Какой ПУТЬ?, Где я должен указать путь к MPlayer?

Ответ №1:

Попробуйте это:

 exec(""C:\Program Files\MPlayer for Windows\mplayer" file.mp4 -benchmark   -noframedrop -ao null -vo jpeg:outdir=iframes  -vf  framestep=I");
  

Я заключил команду в «, поскольку путь содержит пробелы, и добавил отсутствующий перед mplayer.

Комментарии:

1. Привет, лаз, я попробовал то, что вы указали выше, но он показывает ту же ошибку и что ‘mplayer’ — это не папка, это часть команды:- mplayer file.mp4 -benchmark -noframedrop -ao null -vo jpeg: outdir = iframes -vf framestep =I

2. Конечно, я понимаю, что mplayer — это исполняемый файл, а не каталог. Однако предоставленная мной строка не обрабатывает ее как каталог. » после mplayer должен экранировать символ ‘»‘ в строке. Вам нужен ‘»‘, поскольку путь к каталогу содержит пробелы.