Значение выхода процесса Java LocalExecute 127 - PullRequest
1 голос
/ 10 ноября 2010

Я пишу Java-программу, работающую под Linux.Ниже приведен метод 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 ноября, 03:23: 00.467 PM http-8080-2 [myproject.transcoders.LocalExecute] Процесс exitValue: 127

ПроцессexitValue должно быть 0, если все прошло нормально.С прошлой недели я получаю это значение 127!Есть идеи о том, что случилось?

Спасибо, Антонис

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

/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 голос
/ 10 ноября 2010

127 означает «команда не найдена». /usr/local/bin/MP4Box, - есть ли запятая на самом деле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...