我有一个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并重新开始,它应该可以工作。

09-27 00:42