在Java中运行python脚本

时间:2015-03-23 12:30:18

标签: java python

我需要在Windows中运行shell命令:

c:\ Python27 \ python.exe c:\ probabilistic_cracker \ process.py dic2.txt

在命令shell中正常运行。

在Java中我这样做:

ProcessBuilder pb = new ProcessBuilder(Arrays.asList("c:\\Python27\\python", " c:\\probabilistic_cracker\\process.py"," dic2.txt"));
    Process p = pb.start();

或者

ProcessBuilder pb = new ProcessBuilder("c:\\Python27\\python", " c:\\probabilistic_cracker\\process.py"," dic2.txt");

在两种情况下结果都是

c:\ Python27 \ python:无法打开文件' c:\ probabilistic_cracker \ process.py':[Errno 22]参数无效

1 个答案:

答案 0 :(得分:0)

您的命令是正确构建的,但是将其传递给ProcessBuilder的方式不是,如documentation中所述,您直接按照它们的方式传递args,因此无需添加空格ProcessBuilder将为您解决这个问题。

ProcessBuilder pb = new ProcessBuilder("c:\\Python27\\python", "c:\\probabilistic_cracker\\process.py","dic2.txt");

因此,只需删除每个参数字符串开头的空格即可。