我正在运行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/