java_home和popen之间的不同java版本

时间:2015-08-02 14:16:39

标签: java python pycharm

在python IDE中,我运行这两个代码片段并获得java版本的不同输出:

stdout,stderr = Popen(['java','-version'], shell=False,   stderr=PIPE).communicate()
print(stderr)
  

java版“1.7.0”   Java(TM)SE运行时环境(构建pwi3270sr8fp10-20141219_01(SR8 FP10))   IBM J9 VM(版本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)   JCL - 20141217_01基于Oracle jdk7u75-b12

os.system("java -version")
  

java版“1.8.0_40”   Java(TM)SE运行时环境(版本1.8.0_40-b26)   Java HotSpot(TM)64位服务器VM(版本25.40-b25,混合模式)

为什么我在python IDE(PyCharm)中获得了不同的java版本?我怎么能改变它?

1 个答案:

答案 0 :(得分:1)

我认为这是因为os.system()使用了shell(因此会在.bashrc / .profile等中进行任何更改...您是否在$PATH / {{中设置了不同的Java位置1}}在任何一个?

我相信$JAVA_HOME不会调用shell(除非你设置Popen)。

免责声明:未对此进行测试。