java 调用一条linux命令出错了,大家来看看究竟如何调用

wygkzqa3 2014-07-09 02:57:00

命令如下:
pdf2swf -o /data/bjtf/attachment/2014/07/09/2014.swf -T -z -t -f /data/bjtf/attachment/2014/07/09/2014.pdf -s languagedir=/usr/local/swftools/bin/xpdf-chinese-simplified -s flashversion=9

一条将pdf文件转换成swf文件的命令,我把这条命令直接在linux下输出之后,命令是执行的,问题就出在java调的时候,执行不成功,
我不知道java调用linux

Process p = r.exec(new String[]{"pdf2swf"," -o ",“/data/bjtf/attachment/2014/07/09/2014.swf” ," -T -z -t -f ",“/data/bjtf/attachment/2014/07/09/2014.pdf”," -s ","languagedir=","/usr/local/swftools/bin/xpdf-chinese-simplified"," -s ","flashversion=9"});

说实话,我也不知道到底是如何执行的,我从网上搜了一下,说调的命令要分开写,放在数组里,所以我就把这条命令随便拆开,没有任何依据的拆开,就放进数组了,我这种放法肯定有问题,因为我不知道应该怎么写才好,所以跟大家一起来探讨一下,像这种命令如何调呢?
...全文
202 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2014-07-09
  • 打赏
  • 举报
回复
Defonds 2014-07-09
  • 打赏
  • 举报
回复
既然 terminal 可以成功执行,启动 shell,然后自定义命令行作为参数传递给 shell 解释器。shell 知道如何将程序员的意图转达给底层。使用 sh -c,将自定义 CMD 行作为其参数,最后使用 java.lang.Runtimeexec(String[] cmdarray):
String raw2flvCmd = "/usr/local/ffmpeg/bin/ffmpeg -i \"某视频文件下载URL\" -f flv /usr/userfile/ffmpeg/tempfile/1.flv";  
Runtime.getRuntime().exec(new String[]{"sh","-c",raw2flvCmd});  

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧