我想运行一个名为 foo 的 python 脚本。我有绝对路径,可以说:
/用户/我/pythonscripts/
我尝试过运行:
String cmd="/Users/me/pythonscripts/"
String py="foo"
Runtime.getRuntime().exec("cd "+cmd);
Runtime.getRuntime().exec("python "+py+".py");
但这确实运行了 python 文件。
尝试使用更像...
Runtime.getRuntime().exec("python "+cmd + py + ".py");
反而。每个exec
是它自己的进程和多个exec
彼此没有任何关系...
您还应该考虑使用ProcessBuilder
相反,因为这为您提供了很高的可配置性,例如,您可以更改执行路径上下文......
ProcessBuilder pb = new ProcessBuilder("python", py + ".py");
pb.directory(new File(cmd));
pb.redirectError();
//...
Process p = pb.start();
另外,请注意,Python 的输出流存在问题,这可能会阻止 Java 读取它,直到它完全完成(如果有的话)...
欲了解更多详细信息,请查看Java:有没有办法运行系统命令并在执行过程中打印输出?
另外,请确保python
位于 shell 的搜索路径内,否则您还需要指定命令的完整路径
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)