【问题标题】:Issues while Invoking Python process using java process builder使用 java process builder 调用 Python 进程时的问题
【发布时间】:2016-12-09 18:15:37
【问题描述】:

我正在使用 java process builder 以一个标志和一个参数启动 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();

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

【问题讨论】:

    标签: java python processbuilder


    【解决方案1】:

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

    检查环境变量

    映射环境 = System.getenv();

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多