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

How to pass file as an argument to Python process invoked by Java

我是 运行 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
}