[英]Java calls wrong python version
我正在尝试使用Process和ProcessBuilder从Java程序运行Python脚本,但是Java一直在使用错误版本的Python。 (该脚本需要3.6.3才能运行,Java运行Python 2.7)
但是,当我从终端(Java之外)运行脚本时,它运行正确的Python(3.6.3)。 如何更改Java调用时运行的Python版本?
将/usr/bin/python3.4
添加到命令的开头以强制使用所需的python版本。 如果您不确定python的安装位置,请继续使用whereis python
并查看您获得的内容。
private int executeScript(final List<String> command) {
try {
final ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/python3.4").command(command);
processBuilder.redirectErrorStream(true);
System.out.println("executing: " + processBuilder.command().toString());
final Process process = processBuilder.start();
final InputStream inputStream = process.getInputStream();
final InputStream errorStream = process.getErrorStream();
readStream(inputStream);
readStream(errorStream);
return process.waitFor();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return -1;
}
然后只需传入包含python命令的List
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.