从java调用节点js

从java调用节点js,java,processbuilder,Java,Processbuilder,我想从JAVA调用节点JS,如下所示: ProcessBuilder pb = new ProcessBuilder("swagger-to-raml-object","twitter-api-api-docsjson"); 我得到以下错误: CreateProcess error=2, The system cannot find the file specified 已为节点js正确设置我的路径。 导致问题的原因是什么?一种可能的解决方案(取自)是执行命令/bin/bash,并将可执行文

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

ProcessBuilder pb = new ProcessBuilder("swagger-to-raml-object","twitter-api-api-docsjson");
我得到以下错误:

CreateProcess error=2, The system cannot find the file specified
已为
节点js正确设置我的路径。


导致问题的原因是什么?

一种可能的解决方案(取自)是执行命令
/bin/bash
,并将可执行文件作为参数。 当我尝试运行shell脚本时,这对我很有用。。。如果可以从命令行
/my\u super\u 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;

那么swagger to raml对象和程序引用的任何其他文件呢?没有其他程序引用此文件。您说要调用nodejs,但您正在调用swagger to raml对象。它是否在内部调用节点?这是什么文件?@user3345282太好了!如果有效,请检查已解决的答案,或向上投票:)