2012-12-13 56 views
3

我有一个java web开发项目,并且想调用一个python脚本在后台运行,然后继续使用java。使用runtime.getruntime.exec从Java调用python脚本

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); 
+0

python脚本可以在jython下运行吗?如果是这样从java调用它并运行一个线程 – Mark

回答

1

你配置环境以支持“可执行”的Python脚本?
如果没有,你应该这样称呼它:

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

start命令运行相应的可执行(在这种情况下,Python解释器),其提供的参数(在这种情况下,脚本本身)。

+0

谢谢!工作过一种享受! – FredoAF

3

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

ProcessBuilder pb = new ProcessBuilder("python", "script.py"); 
pb.directory(new File("C:\\path\\to\\py")); 
Process p = pb.start();