我有一些调用 Python 脚本的 Java 代码:
String[] cmd = new String[]{"python", "path/to/script", "arg1", "arg2"}
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
只要 Python 脚本不包含错误,它就可以正常工作,但一旦出现错误,它就会崩溃。但是,如果直接从命令行运行 Python 脚本,我不会收到错误消息,因此我必须自己搜索哪里出了问题。效率不太高。
是否可以通过在我的 Java 代码中添加一些行来获取此消息?
最佳答案
参见When Runtime.exec()
won't有关正确创建和处理流程的许多好技巧。然后忽略它引用 exec
并使用 ProcessBuilder
创建进程。还将 String arg
分解为 String[] args
以考虑包含空格字符的路径等问题。
现在讨论一下当前问题的具体情况,听起来好像是错误流的输出丢失了。正如您所指出的,调用 proc.getErrorStream() 并处理该输出应该符合要求。
关于java - 从 Java 调用的 Python 脚本获取错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598673/