3

我有一个java web开发项目,想调用一个python脚本在后台运行,然后继续java。

String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && python script.py";
Process p = Runtime.getRuntime().exec(command);

当我调用它时似乎没有发生任何事情,但我需要先更改目录,因为脚本访问其目录中的文件。

谢谢你的帮助

编辑:

正确答案是添加开始,这是我编辑的代码

String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && start python script.py";
Process p = Runtime.getRuntime().exec(command);
4

2 回答 2

3

cmd您可以从 Java 端设置进程的工作目录,而不是使用来更改目录。例如

ProcessBuilder pb = new ProcessBuilder("python", "script.py");
pb.directory(new File("C:\\path\\to\\py"));
Process p = pb.start();
于 2012-12-13T13:47:42.323 回答
1

您是否将环境配置为支持“可执行”python 脚本?
如果没有,你应该这样称呼它:

String command = "cmd.exe /c start python path\to\script\script.py";
Process p = Runtime.getRuntime().exec(command);

start命令运行适当的可执行文件(在本例中为 python 解释器)及其提供的参数(在本例中为脚本本身)。

于 2012-12-13T13:44:34.460 回答