2013-07-16 6 views
0

java가 설치되어 있는지 확인하고 올바른 버전인지 확인하기 위해 subprocess를 사용하려고합니다. 설명서에서 출력을 변수에 매핑하여 사용할 수 있지만 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

'자바 -version' 인쇄하지 표준 출력, stderr로. – geoffspear

답변

1

당신은 표준 출력 결과 표준 오류를 캡처하여 jd에 결과를 저장할 수 있습니다

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

감사합니다. 작동합니다. 때로는 문서가 초보자에게 충분하지 않거나 충분하지 않은 경우도 있습니다. – zulq

관련 문제