java LocalExecute进程退出值127

时间:2010-11-10 13:38:11

标签: java linux

我正在编写一个在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 / modulesGuonnts / 29443b_3gp.hint]   [INFO] 11月03日下午23:00.467 PM http-8080-2 [myproject.transcoders.LocalExecute]   处理exitValue:127

如果一切正常,则进程exitValue应为0。 从上周开始,我得到了这个127值!关于发生了什么的任何想法?

由于 安东尼

2 个答案:

答案 0 :(得分:3)

/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");
}

答案 1 :(得分:1)

127表示“未找到命令”。 /usr/local/bin/MP4Box, - 真的有逗号吗?