在您将此报告为重复报告之前,请了解我现在已经花了几个小时来研究来自多个不同网站(许多都是来自此处)的类似问题。他们对解决方案的解释不够好,无法让我接受他们的答案并将其应用于我自己的问题。如果您仍然想报告此事,请继续尝试。您要做的只是阻止我学习更好的代码。
我正在尝试调用python脚本并将其传递5个参数。我尝试了几种不同的方法来做到这一点,并相信流程构建器路线是我的最佳选择。但是,我有几个问题,因为它似乎不是正确的代码:
我是否需要为流程构建器提供可执行文件的路径,还是可以为它提供普通.py文件的路径?
我需要从python文件中收集输出吗?
如果我没有看到其他任何问题,请通知我。与互联网上相同的代码相比,我的代码看上去正确。它在下面列出:
private void runPython(String pythonPath, HashMap<String, String> map){
pythonPath = "C:/Users/Carlos/PycharmProjects/autoHTML/javaToExcel.py";
try {
ProcessBuilder pb = new ProcessBuilder(pythonPath + "/" + "python", pythonPath, map.get("Driver Advances"), map.get("Driver Loans"),
map.get("Escrow Fund"), map.get("Maintenance Fund"), map.get("Highway Use tax - 2290"));
Process p = pb.start();
catch(Exception e) {
System.out.println("Python error");
}
}
如果您需要任何代码或需要回答的任何问题以帮助我,请告诉我。
答案 0 :(得分:0)
要创建操作系统进程,可以使用带有2个参数的ProcessBuilder:
传递给您的过程的参数:
您可以尝试:
ProcessBuilder pb = new ProcessBuilder(
"C:/Users/Carlos/PycharmProjects/autoHTML/javaToExcel.py/python.exe",
pythonPath,
map.get("Driver Advances"),
map.get("Driver Loans"),
map.get("Escrow Fund"),
map.get("Maintenance Fund"),
map.get("Highway Use tax - 2290"));