我正在写一个运行在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");
}

10-07 22:45