虽然可以在终端中找到,但ProcessBuilder找不到命令

时间:2016-09-14 08:38:36

标签: java processbuilder

我有一个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所必需的)。

1 个答案:

答案 0 :(得分:1)

这是eclipse中一个永远无法解决的奇怪错误。将它添加到PATH变量后,不要重新启动eclipse。退出eclipse并重新开始它应该可以工作。