我正在写一个运行在Linux上的Java程序。下面是Java方法
createHinted3gpFile (String localfile) {
ArrayList<String> cmdArray = new ArrayList<String>();
String hintedFile = localfile+".hint";
cmdArray.add("cp");
cmdArray.add(localfile);
cmdArray.add(hintedFile);
System.out.println ("Command ="+cmdArray);
LocalExecute.exec(cmdArray.toArray(new String[1]));
cmdArray = new ArrayList<String>();
cmdArray.add("/usr/local/bin/MP4Box");
cmdArray.add("-3gp");
cmdArray.add("-hint");
cmdArray.add(hintedFile);
System.out.println ("Command ="+cmdArray);
LocalExecute.exec(cmdArray.toArray(new String[1]));
}
以及输出
command=[/usr/local/bin/mp4box,-3gp,-hint,/opt/myproject/contents/29443b_3gp.hint]
[信息]11月10日03:23:00.467 PM http-8080-2[myproject.transcoders.localexecute]
进程ExtValu: 127
如果一切正常,进程ExIT值应该是0。
从上个星期起我得到了这个127的价值!你知道发生了什么吗?
谢谢
安东尼斯
最佳答案
/usr/local/bin/MP4Box, -3gp, -hint, /opt/myproject/contents/29443b_3gp.hint
也许这些逗号是你的退出价值的原因。
如何从命令行运行此命令?也许是这边?/usr/local/bin/MP4Box -3gp -hint /opt/myproject/contents/29443b_3gp.hint
如果是,那么在执行之前需要去掉逗号。
编辑:从你的评论来看,逗号是有问题的。
我觉得你的方法太复杂了。这对眼睛应该更容易:
createHinted3gpFile (String localfile) {
Runtime.getRuntime().exec("/usr/local/bin/MP4Box -3gp -hint " + localfile + ".hint");
}