我正在编写一个在 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] [INFO] 10 Nov 03:23:00.467 PM http-8080-2 [myproject.transcoders.LocalExecute] Process exitValue: 127
如果一切正常,Process exitValue 应该为 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");
}
关于java LocalExecute 进程退出值 127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145023/