gpt4 book ai didi

java - 从 Java 调用 python

转载 作者:太空狗 更新时间:2023-10-30 02:47:52 25 4
gpt4 key购买 nike

我正在为我公司的内部工具包构建一个前端。一半的工具是用 python 编写的,另一半是用其他几种脚本语言编写的。所以我正在使用 swing 在 java 中构建一个前端。到目前为止,我可以通过以下代码调用 python 脚本:

public class Foo
{
public static void main(String[] args)
{
try
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("python foo.py");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
p.waitFor();
String line = "";
while (br.ready())
System.out.println(br.readLine());

}
catch (Exception e)
{
String cause = e.getMessage();
if (cause.equals("python: not found"))
System.out.println("No python interpreter found.");
}
}
}

效果很好,但如果 python 脚本遇到任何错误,它不会打印出来。我怎样才能确保它也打印出它有的任何错误?

最佳答案

简单的答案是也阅读 Process.getErrorStream

更复杂的答案是,您所说的 Python 可能指的是 CPython,它只是该语言的一种实现。还有另一种实现,Jython,它基本上将 Python 编译成 Java 字节码以在 JVM 上运行。这将允许比通过 Java 的 Runtime.exec

简单地调用 CPython 更紧密的集成

附言Runtime.exec 是一种旧的做事方式。 ProcessBuilder 通常是在 Java 中启动子进程的更简洁、更直观的方式。

关于java - 从 Java 调用 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15515298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com