我有一个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包,但是找不到某个Python包(Gstreamer,这是Mopidy所必需的)。
答案 0 :(得分:1)
这是eclipse中一个永远无法解决的奇怪错误。将它添加到PATH变量后,不要重新启动eclipse。退出eclipse并重新开始它应该可以工作。