获得来自Java的
问题描述:
叫Python脚本输出的错误,我有一个调用的Python脚本一些Java代码:获得来自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()
并处理该输出应符合要求。
这解决了我的问题:'proc.getErrorStream()'是我正在寻找的。如果你写你的评论作为答案,我可以接受它。 (和打破脚本,我无法找到的错误:我在'elif'后忘了冒号......) – rdv
*“我在'elif'之后忘了冒号......)”*那些类型的错误困扰着我们所有人。有错误输出是件好事。 –