java - 从 Java 调用的 Python 脚本获取错误输出

标签 java python-3.x runtime.exec

我有一些调用 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/

相关文章:

Python类继承: dynamic attribute creation

java - 无法通过运行时类编译构建.class文件

java - Android - 在 ExpandableListView 的每一行中的项目上设置监听器

java - 卡在第一个简单的 Android 应用程序上

python - 属性错误: module 'cupy' has no attribute 'array'

python 根据日期将列表列表中的列表元素求和为唯一

java - Runtime.getRuntime().exec 中出现 NullPointerException 错误

java - Runtime.getRuntime().exec 挂起

java - spring中有没有内置的方法来编写空/空检查方法?

java - Spring Boot 启动失败