使用 java 流程构建器调用 Python 流程时出现问题

Issues while Invoking Python process using java process builder

我正在使用 java 进程构建器启动 python 进程,带有一个标志和一个参数,如下所示。但是我没有看到任何异常,也没有进程启动。

我想要 运行 的命令是

python oc_db5.py -c input.json

文件 oc_db5.py 的位置是

/opt/jvision/grpc/gui

我的代码如下所示

    processBuilder = new ProcessBuilder(

            Arrays.asList(
                    "python",
                    "oc_db5.py",
                    "-c",
                    "input.json"));

    processBuilder.directory(new File("/opt/jvision/grpc/gui"));

    processBuilder.start();

    logger.info("Process started ..." + new Date());

    int count = 0;
    BufferedReader br = new BufferedReader(new InputStreamReader(
            process.getInputStream()));

    while ((lineData = br.readLine()) != null) {

        System.out.println("line: " + ++count + " " + lineData);
        logger.info("line: " + ++count + " " + lineData);
    }
    process.waitFor();
    process.getErrorStream();
    process.waitFor();

    process.exitValue();

我可以看到日志文件包含条目 "process start...",但我并没有真正看到该进程已启动。想知道我错过了什么。

你能检查一下 python 是否在你的 PATH 中吗?很久以前我对自定义命令有类似的问题。您可以使用绝对路径来尝试它:)。 您还可以通过

检查您的环境变量

Map env = System.getenv();

如果您正在使用 Linux,您可以像 "sleep 1000" 一样启动进程,然后通过 "ps aux | grep sleep" 或类似的方式检查它是否存在于系统进程 table 中 :)