2013-07-16 94 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