java createprocess error=2_java 调用可执行文件时,ProcessBuilder异常CreateProcess error=2

java 调用其他应用程序时,可能在windows下没有问题,但是转到linux下,却会报这样那样的错误,比如有设计文件操作会报FileNotFoundException等等(如下代码):

1 ProcessBuilder builder = newProcessBuilder();2 builder.command(ffmpeg -i /data/download_video/20160425/20160425235938929164582_1.flv -y -vcodec libx264 -vpre ultrafast -vpre baseline -cqp 28 -coder 0 -refs 3 -deblockalpha 1 -deblockbeta -1 -me_method umh -subq 9 -me_range 32 -trellis 2 -chromaoffset -2 -nr 0 -b_strategy 1 -bframebias 0 -directpred 3 -g 250 -i_qfactor 1.3 -b_qfactor 1.4 -flags2 +bpyramid+wpred+mixed_refs+8x8dct -acodec libfaac -s 640*360 -b 532000 -ab 58000 -r 15 -pass 1 /data/video/output/20160425/20160425235938929164582_1_06400360.mp4);3        builder.start();

4        ..........

原因:  不同的操作系统指令之间如果存在空格,可能会出现无法识别指令的错误。

解决方法:  指令中有空格的需要用不同的字符串分开,将指令用空格进行split,通过数组方式进行指令传值,使用API:

public ProcessBuilder command(String... command)

可参考ProcessBuilder  类说明:

Constructs a process builder with the specified operating system program and arguments. This is a convenience constructor that sets the process builder's command to a string list containing the same strings as the command array, in the same order. It is not checked whether command corresponds to a valid operating system command.

Parameters:command a string array containing the program and its arguments

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值