启动Java时使用-d32和-d64

hag*_*wal 11 java command-line-arguments

我在下面阅读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之后,当我运行我的java程序时,-d64一切都按预期进行,因为它实际上是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).

Ort*_*kni 15

你的引用:

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

仅对Solaris操作系统有效.

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

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

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