获得来自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代码添加一些行来获取此消息?

+0

这解决了我的问题:'proc.getErrorStream()'是我正在寻找的。如果你写你的评论作为答案,我可以接受它。 (和打破脚本,我无法找到的错误:我在'elif'后忘了冒号......) – rdv

+0

*“我在'elif'之后忘了冒号......)”*那些类型的错误困扰着我们所有人。有错误输出是件好事。 –

请参阅When Runtime.exec() won't了解如何正确创建和处理流程。然后忽略它指的是exec并使用ProcessBuilder来创建该过程。还要将String arg分解为String[] args以解释包含空格字符的路径。

现在就手头问题的具体情况,它听起来像是错误流的输出丢失了。如您所述,调用proc.getErrorStream()并处理该输出应符合要求。