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

如何将文件作为参数传递给Java调用的Python进程,java,python,processbuilder,Java,Python,Processbuilder,我正在运行Java程序,使用process builder调用Python进程,如下所示 processBuilder = new ProcessBuilder( Arrays.asList( "/usr/bin/python", "/opt/gui/oc_db5.py", "-c", "/

我正在运行Java程序,使用process builder调用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”选项,但是我看到的是,系统正在用json文件的路径附加java程序的位置,然后选择导致python代码问题的.json文件

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
}

从python程序中得到的错误消息是什么?代码看起来很好。如果在命令行中使用.py和.json的绝对路径,为什么要分配目录?如果从根目录运行此程序,我会得到以下错误:没有这样的文件或目录:'/root//opt/gui/test.json'(注意:/root/附加在test.json之前。是的,它不起作用。它实际上添加了它。我得到的退出代码为1。