Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java调用的Python脚本获取错误输出_Java_Python 3.x_Runtime.exec - Fatal编程技术网

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

从Java调用的Python脚本获取错误输出,java,python-3.x,runtime.exec,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脚本,我不会得到错误消息,因此我必须自己搜索哪里出了问题。效率不

我有一些调用Python脚本的Java代码:

String[] cmd = new String[]{"python", "path/to/script", "arg1", "arg2"}
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
只要Python脚本不包含任何错误,它就可以正常工作,但一旦出现错误,它就会崩溃。但是,如果直接从命令行运行Python脚本,我不会得到错误消息,因此我必须自己搜索哪里出了问题。效率不高

是否可以通过在Java代码中添加一些行来获取此消息

有关正确创建和处理流程的许多好提示,请参阅。然后忽略它引用
exec
,并使用
ProcessBuilder
创建流程。还可以将
字符串arg
分解为
字符串[]args
,以说明包含空格字符的路径之类的情况


现在,对于手头问题的细节,听起来好像是错误流的输出丢失了。正如您所注意到的,调用
proc.getErrorStream()
并处理该输出应该符合要求。

这解决了我的问题:
proc.getErrorStream()
就是我要找的。如果你写下你的评论作为回答,我可以接受。(这个错误破坏了脚本,我就是找不到:我在
elif
..”后面忘了一个冒号)“我在
elif
..”后面忘了一个冒号”这些错误困扰着我们所有人。有错误输出是件好事。