【问题标题】:How can I tell python to use 64bit java?如何告诉 python 使用 64 位 java?
【发布时间】:2014-07-03 04:31:05
【问题描述】:

在 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?

【问题讨论】:

  • 你为什么要从python调用java?为什么要调用 x64?
  • @Kyllopardiun java是需要运行的核心程序,需要x64才能使用所有内存。 python 只是一个告诉它何时运行的实用程序脚本。
  • @dwjohnston 好吧,您可以尝试研究 python 中的 PATH 变量,看看为什么它与命令行中的变量不同。或者您可以硬编码 64 位 Java 的绝对路径。
  • 也许:"C:\\Program Files\\Java\\jdk1.6.0_21\\bin\\java -version" 你的 jdk 编号可能不同机器
  • @cyon 硬编码 64 位 java 工作的绝对路径,你想把它作为答案发布吗? call("\"C:\\Program Files\\Java\\jre7\\bin\\java.exe\" -version")

标签: java python 64-bit 32-bit


【解决方案1】:

当您在 Windows 命令行中调用 java -version 时,它会参考 PATH 环境变量来定位 java 可执行文件。

subprocess.call 我假设您在那里使用它似乎没有在您的情况下在 Windows 上使用相同的窗口 PATH 变量。也许如果你强制它生成一个 shell(根据文档被认为是不安全的)它会起作用。

call("java -version", shell=True)

如果您有多个 Java 安装(即 64 位和 32 位 JRE),最简单的解决方案是硬编码 Java 64 位可执行文件的绝对路径

call("C:\\Program Files\\Java\\jre7\\bin\\java -version")

【讨论】:

    猜你喜欢
    • 2011-10-11
    • 2012-05-16
    • 2010-09-27
    • 2014-04-02
    • 2014-02-25
    • 1970-01-01
    • 2023-03-29
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多