在python中,我运行这两个代码片段,并为java版本获得不同的输出:
stdout,stderr = Popen(['java','-version'], shell=False, stderr=PIPE).communicate()
print(stderr)java版本" 1.7.0“Java(TM) SE运行时环境(build pwi3270sr8fp10-20141219_01(SR8 FP10)) J9 VM (build 2.6,JRE 1.7.0 Windows 7 x86-32 20141216_227497 (启用JIT,启用AOT ) J9VM - R26_Java726_SR8_20141216_0955_B227497 JIT- r11.b07_20141003_74578.05 GC - R26_Java726_SR8_20141216_0955_B227497 J9CL - 20141216_227497)基于Oracle jdk7u75-b12的JCL - 20141217_01
os.system("java -version")java版本"1.8.0_40“Java(TM) SE运行时环境(build 1.8.0_40-b26) Java HotSpot(TM) 64位服务器VM (build 25.40-b25,混合模式)
为什么我在python (PyCharm)中有一个不同的java版本?我怎么才能改变呢?
发布于 2015-08-02 14:38:30
我认为这是因为os.system()使用了shell (因此将获取.bashrc / .profile等方面的任何更改)。您是否在$PATH / $JAVA_HOME中设置了不同的Java位置?
我相信Popen不会调用shell (除非您设置了shell=true)。
免责声明:未对此进行测试。
https://stackoverflow.com/questions/31772770
复制相似问题