Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用runtime.getruntime.exec从Java调用python脚本_Java_Python_Servlets - Fatal编程技术网

使用runtime.getruntime.exec从Java调用python脚本

使用runtime.getruntime.exec从Java调用python脚本,java,python,servlets,Java,Python,Servlets,我有一个java web开发项目,希望调用一个python脚本在后台运行,然后继续使用java String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && python script.py"; Process p = Runtime.getRuntime().exec(command); 调用此函数时似乎什么也没有发生,但当脚本访问其目录中的文件时,我需要首先更改目录 谢谢你的帮助 编辑: 正确答案是添加开始,这是我编辑的代码

我有一个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);

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

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

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

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

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

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