启动Java时使用-d32和-d64

时间:2015-06-26 17:22:38

标签: java command-line-arguments

我在下面摘录了JDK FAQ's

的摘录
  

如何在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之后,当我使用-d64运行我的java程序时,一切都按预期进行,因为它实际上是64位安装,但是当我使用-d32时,我收到错误Error - This Java instance does not support 32 bit JVM 1}}。

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

问题:

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

1 个答案:

答案 0 :(得分:14)

你的引用:

  

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

仅对Solaris操作系统有效。

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

  

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

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