如何将文件作为参数传递给 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
}
我是 运行 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
}