2011-04-26 83 views
1

嗨 我想。什么执行Runtime.getRuntime.exec(字符串CMD)

执行命令字符串Runtime.getRuntime.exec(字符串CMD)实际上,我想提取我从帧使用MPlayer的视频,它是

安装在与我的eclipse工作区不同的目录中。

我用下面

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

实际的命令java代码像使用DOS是

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

Eclipse工作区是在我的d提取:drive.And的MPlayer是在c:\ program files \ Mplayer for windows中。

Eclipse IDE中显示为例外: -

Exception in thread "main" java.io.IOException: Cannot run program "C:\Program Files\MPlayer 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) 

任何帮助是极大的赞赏。

+0

只需添加'mplayer'在PATH – 2011-04-26 17:16:59

+0

发布你的代码,现在看来你正在执行一个文件夹 – Aleadam 2011-04-26 17:20:00

+0

我认为这也可能是问题 - 你错过了一组正斜线? – Liv 2011-04-26 17:20:54

回答

0

试试这个:

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

我在\包围命令”,因为路径包含空格,并增加了丢失\ MPlayer中的前

+0

嗨LAZ我想你给什么上面,但它显示了同样的错误,那是mplayer的'不是一个文件夹,它是命令的一部分: - mplayer的file.mp4 -benchmark -noframedrop -ao空-vo JPEG:OUTDIR = I帧-vf framestep = I – 2011-04-27 04:54:03

+0

当然,我认识到mplayer是可执行文件,而不是目录。我提供的字符串不会将其视为目录。 mplayer之后的'\'是为了避免字符串中的'''字符。因为目录路径包含空格,所以需要'''。 – laz 2011-04-27 16:44:17