从java

时间:2015-06-01 11:20:35

标签: java processbuilder

我想从JAVA调用NODE JS,如下所示:

ProcessBuilder pb = new ProcessBuilder("swagger-to-raml-object","twitter-api-api-docsjson");

我收到以下错误:

CreateProcess error=2, The system cannot find the file specified

我的路径已正确设置为Node js.

导致问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

可能的解决方案(取自here)是执行命令/bin/bash您的可执行文件作为参数。 当我尝试运行shell脚本时,这对我有用...如果你能够从命令行./my_super_exec运行,你可以从Java运行它:

  /* Tell Java what shell is needed to execute your command */
  private static final String BIN_BASH = "/bin/bash";

  // ...

    int exitValue = 0;
    try {
      ProcessBuilder pb = new ProcessBuilder(BIN_BASH, sh);
      Process p = pb.start();
      exitValue = p.waitFor();
    } catch (IOException | InterruptedException e) {
      return false;
    }
    return exitValue == 0;