在Windows命令行中,如果我输入java -version
,我会
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
和python -v
#snip
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
在python中如果使用
call("java -version")
我得到了
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode, sharing)
有没有办法可以强制我的python使用64位JVM?
答案 0 :(得分:1)
当您在Windows命令行中调用java -version
时,它将查询PATH
环境变量以找到java
可执行文件。
subprocess.call
我认为你在那里使用似乎在你的情况下在Windows上没有使用相同的Windows PATH
变量。也许如果你强制它产生一个shell(根据文档不被认为是安全的)它可以工作。
call("java -version", shell=True)
如果你有多个Java安装(即64位和32位JRE),最简单的解决方案是硬编码java 64位可执行文件的绝对路径
call("C:\\Program Files\\Java\\jre7\\bin\\java -version")