启动Java时使用-d32和-d64

我在下面阅读JDK FAQ的摘录

如何在32位和64位操作之间进行选择? 什么是默认值? 选项-d32和-d64已添加到Java启动程序,以指定程序是在32位还是64位环境中运行。 在Solaris上,它们分别对应于ILP32和LP64数据模型。 由于Solaris在同一Java安装中包含32位和64位J2SE实现,因此您可以指定任一版本。 如果既未指定-d32也未指定-d64,则缺省值是在32位环境中运行。

现在测试一下,我登录到我的64位Ubuntu客户操作系统并安装了64位JDK版本 – Linux x64 165.24 MB jdk-8u45-linux-x64.tar.gz

安装JDK后,当我使用-d64运行我的java程序时,一切都按预期进行,因为它实际上是64位安装,但是当我使用-d32我得到错误说Error - This Java instance does not support 32 bit JVM

错误对我来说是可以理解的,但令我困惑的是这一行(如上面引用的段落中所述) “选项-d32和-d64已添加到Java启动程序中以指定程序是以32或64运行 -位环境。“
根据这一行,我的理解是,当启动64位版本的Java时, -d32可用于以32位模式启动它。

问题:

  1. 我的理解是否正确? 如果它是正确的,那么我收到错误?
  2. 如果我的理解不正确,那么为什么我需要这些命令行参数,因为当我使用java启动Java时,我的PATH中的任何安装(32位或64位JDK)都将被启动。

你的引用:

选项-d32和-d64已添加到Java启动程序,以指定程序是在32位还是64位环境中运行。

仅对Solaris操作系统有效。

稍后在JDK的FAQ中 ,我们可以阅读:

所有其他平台(Windows和Linux)包含单独的32位和64位安装包。 如果两个软件包都安装在系统上,则可以通过在路径中添加适当的“bin”目录来选择其中一个软件包。 为了保持一致性,Linux上的Java实现接受-d64选项。

因此,要回答第二个问题,在Windows和Linux中,这些标志是无用的,并且通过运行相应的JVM安装来完成32/64位选择。