gpt4 book ai didi

java - 如何使用 Java 运行时打印 Python 脚本的 std 输出?

转载 作者:行者123 更新时间:2023-12-01 09:53:36 24 4
gpt4 key购买 nike

我想使用 Java 运行时打印以下 Python 脚本的标准输出。我的理想结果只是打印出“Hello World”。为什么我会收到 java.io.IOException: Cannot run program "python": CreateProcess error=2, The system can not find the file returned at java.lang.ProcessBuilder.start?我的 Path 和 Python 环境变量已正确配置。

String commandline = "python /c start python C:\\Users\\Name\\HelloWorld.py"

try {
//TODO java.io.IOException: Cannot run program "dir"
Process process = Runtime.getRuntime().exec(commandline);
process.waitFor();

// Store command line output
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

StringBuilder builder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append(System.getProperty("line.separator"));
}
String result = builder.toString();

if (result != null) {
PrintWriter out = resp.getWriter();
out.println("<div>" + result + "</div>");
System.exit(0);
} else {
PrintWriter out = null;
}

} catch (IOException e1) {
PrintWriter out = resp.getWriter();
e1.printStackTrace(out);
} catch (InterruptedException e2) {
PrintWriter out = resp.getWriter();
e2.printStackTrace(out);
}

最佳答案

实现此目的的一种方法是将 python 输出更改为输出到文件。我相信您可以简单地通过将进程字符串更改为:

String commandline = "python /c start python C:\\Users\\Name\\HelloWorld.py > output.txt"

然后使用 java 打开/读取文件的数百万种方式中的任何一种来处理文件,该文件应该包含 python 程序的输出。您可能需要添加 thread.sleep(1000),因为您的 python 脚本不会在 JVM 中运行,并且可能需要时间才能完成,因为您的 java 程序中的指令是同步的。

关于java - 如何使用 Java 运行时打印 Python 脚本的 std 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37416638/

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