在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版本?我怎么能改变它?
答案 0 :(得分:1)
我认为这是因为os.system()
使用了shell(因此会在.bashrc / .profile等中进行任何更改...您是否在$PATH
/ {{中设置了不同的Java位置1}}在任何一个?
我相信$JAVA_HOME
不会调用shell(除非你设置Popen
)。
免责声明:未对此进行测试。