我有一个Java应用程序,它通过ProcessBuilder启动Mopidy。
这是我的代码:
if(mopidy==null){
try {
btnStartMopidy.setDisable(true);
btnStopMopidy.setDisable(false);
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", "mopidy");
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
mopidy = pb.start();
} catch (IOException ex) {
ex.printStackTrace();
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
奇怪的是,当我从Netbeans运行它时,输出显示找不到Mopidy命令,但是。
当我通过终端运行生成的.jar文件时,我得到了预期的Mopidy输出。当我通过双击运行.jar文件时,遇到相同的错误,表明找不到该命令。
有什么想法吗?
编辑:
这次,我尝试直接调用该程序,而不是使用bash -c。
ProcessBuilder pb = new ProcessBuilder("/usr/local/bin/mopidy");
看来Mopidy现在可以找到,但是我遇到了另一个错误。它说尽管找到了某个Python软件包(Mopidy必需的GStreamer),但找不到。
最佳答案
这是一个从未修复过的日食怪异的错误。将eclipse添加到PATH变量后,请不要重新启动它。退出eclipse并重新开始,它应该可以工作。