java LocalExecute 进程退出值 127

标签 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/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/

相关文章:

java - 需要对字符串值进行排序,同时忽略对空字符串值的任何位置更改

linux - 中断上下文和进程上下文之间的区别?

linux - grep -o : Keep input line format

java - 在我的应用中使用相同的 Intent 选择器共享多条消息

java - 在JAVA中生成特定范围内的随机日期

java - 如何为同一个自定义信息窗口提供不同的事件

c - 为什么 bash 在分配时不自动导出 PATH?

linux - 在多个节点修改配置文件

linux - 如何在 debian 中安装 Hjelmslund USB485

java - 是否有适用于 El Capitan 的 javax.bluetooth.* 实现?