我阅读了以下摘录JDK 常见问题解答 http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_layering
如何在 32 位和 64 位操作之间进行选择?默认是什么?
选项 -d32 和 -d64 已添加到 Java 启动器中
指定程序是在 32 位还是 64 位中运行
环境。在 Solaris 上,这些对应于 ILP32 和 LP64 数据
模型,分别。由于 Solaris 同时具有 32 位和 64 位 J2SE
包含在同一 Java 安装中的实现,您可以
指定任一版本。如果 -d32 和 -d64 均未指定,则
默认是在 32 位环境中运行。
现在为了测试这一点,我登录到我的 64 位 Ubuntu 客户操作系统并安装了 64 位 JDK 版本 -Linux x64 165.24 MB jdk-8u45-linux-x64.tar.gz
.
安装 JDK 后,当我使用以下命令运行 java 程序时-d64
那么一切都如预期的那样,因为它实际上是 64 位安装,但是当我使用-d32
然后我得到错误说Error - This Java instance does not support 32 bit JVM
.
错误对我来说是可以理解的,但令我困惑的是这一行(如上面引用的段落)“选项 -d32 和 -d64 已添加到 Java 启动器中,以指定是否program将在 32 位或 64 位环境中运行。”
根据这一行,我的理解是,当启动 64 位版本的 Java 时,-d32
可用于在 32 位模式下启动它。
问题:
- 我的理解正确吗?如果它是正确的,那么我会收到错误吗?
- 如果我的理解不正确,那么为什么我需要这些命令行参数,因为当我使用
java
然后我的 PATH 中的安装(32 位或 64 位 JDK)都将启动。
您所做的引用:
Java 启动器中添加了选项 -d32 和 -d64,以指定程序是在 32 位还是 64 位环境中运行。
仅对 Solaris 操作系统有效。
后来在JDK的常见问题解答 http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_layering,我们可以读到:
所有其他平台(Windows 和 Linux)都包含单独的 32 位和 64 位安装包。如果系统上安装了这两个软件包,则可以通过将适当的“bin”目录添加到路径来选择其中一个。为了保持一致性,Linux 上的 Java 实现接受 -d64 选项。
因此,回答你的第二个问题,在 Windows 和 Linux 中,这些标志是无用的,32/64 位选择是通过运行相应的 JVM 安装来完成的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)