我想从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.
导致问题的原因是什么?
答案 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;