2013-07-16 53 views
0

我想使用子进程来检查是否安装了java,并检查它是否是正确的版本。从文档你可以映射输出到变量,并能够使用,但它不适用于Java。例如,当我做li = subprocess.check_output(["ls", "-la", "."])时,我得到的输出存储在li中,控制台上没有显示任何内容。但是当我做jd = subprocess.check_output(["java", "-version"])这是什么显示在终端上使用python获取安装的java版本的详细信息

java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 

和jd是空的。

+1

'Java的-version'打印到标准错误,而不是标准输出。 – geoffspear

回答

1

您可以通过在结果到stdout捕捉标准错误结果存回jd

jd = subprocess.check_output(["java", "-version"], 
       stderr=subprocess.STDOUT) 
+0

谢谢,它的工作原理。有时文档对新手来说不够清楚/不够。 – zulq