java - 如何将文件作为参数传递给Java调用的Python进程

原文 标签 java python processbuilder

我正在运行Java程序,以使用流程生成器调用Python流程,如下所示,

    processBuilder = new ProcessBuilder(
                    Arrays.asList(
                    "/usr/bin/python",
                    "/opt/gui/oc_db5.py",
                    "-c",
                    "/opt/gui/test.json")   
            );

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

    processBuilder.start();


python程序的位置在/ opt / gui目录下,并且还需要传递一个test.json文件作为参数,并带有“ -c”选项,但是我看到的是系统正在使用路径附加java程序的位置JSON文件,然后选择.JSON文件,导致Python代码出现问题。

实际上python程序得到的是/opt/java//opt/gui/test.json。我也尝试了../../,但是它不适用于test.json文件。

有没有一种方法可以将.JSON文件指定为python程序的参数?

最佳答案

这似乎对我有用。我的意思是,它解决了目录问题。

try {
    int exitCode = Runtime.getRuntime().exec("python /opt/gui/oc_db5.py -c /opt/gui/test.json", null, new File("/")).waitFor(); // run program and get exit code
} catch(Exception e) { // is there an error?
    e.printStackTrace(); // print error
}

关于java - 如何将文件作为参数传递给Java调用的Python进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41153835/

相关文章:

java - 如何获取和服务 Vertx SockJS eventbus javascript 客户端依赖

java - hadoop映射器中对象类型的键

python - Python:SQL表中的巨大循环

python - 为什么在for循环中收到无效的语法错误?

java - 如何使用Java命令行调用Docker容器?

java - Process 类的 getOutputStream 方法是如何工作的?

java - 有没有办法继承 Hibernate 的 @Where 注释?

java - 如何运行以下命令来测试kafka服务器是否安装正确?

python - 如何删除3列以上具有相同值的行

java - ProcessBuilder在Linux上运行jar