在Windows 64上以32位模式运行java

时间:2014-06-03 07:46:10

标签: java jvm 32bit-64bit

我需要在Windows 8.1 64位下以32位模式运行java。

我在c:\Program Files\Java\jre7(64位JVM)和c:\Program Files (x86)\Java\jre7(32位JVM)下安装了java 7 jre。

但是,如果从cmd发出java -d32 -version,我会收到此错误:

Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.

没有-d32开关,它确认运行64位JVM:

Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

所以我打开了java控制面板并将32位JVM添加到用户安装的JRE(即使以管理员身份运行,系统选项卡也不允许我更改任何内容),但没有任何更改。

我已经阅读了一些用户的帖子,他们说使用java 7+应该支持-d32模式,但我无法获得它。有人能帮帮我吗?

注意:请注意我无法删除64位JVM,因为我需要它用于其他应用程序

5 个答案:

答案 0 :(得分:3)

我找到了另一个解决方案。 通过使用launchj4我可以将我的jar包装到exe中,我可以指定我想要使用的JRE并强制它搜索32位JVM,设置最小和最大版本等(参见JRE)。 包装器将自动搜索已安装的JRE并选择符合要求的JRE。

将我的jar包装到exe中对于部署我的应用程序更方便。

答案 1 :(得分:3)

根据FAQ

  

如何在32位和64位操作之间进行选择?什么是默认值?

     

选项-d32和-d64已添加到Java启动器中   指定程序是以32位还是64位运行   环境。在Solaris上,这些对应于ILP32和LP64数据   模型,分别。由于Solaris同时具有32位和64位J2SE   实现包含在同一个Java安装中,你可以   指定任一版本。如果既未指定-d32也未指定-d64,则   default是在32位环境中运行。其他Java命令   (javac,javadoc等)很少需要以64位执行   环境。但是,-d32 / -d64选项可以传递给它们   命令,然后使用已建立的-J到Java启动器   前缀选项(例如:-J-d64)。
  所有其他平台(Windows和Linux)包含单独的32位和64位安装包。如果两个软件包都安装在   系统,您可以通过添加适当的" bin"来选择其中一个。   目录到您的路径。为了保持一致性,Java实现   Linux接受-d64选项。

答案 2 :(得分:1)

您可以在同一台计算机上安装32位和64位。事实上,你可以安装32bit和64bit的多个版本(例如 - java6和java7)。因为每个JRE都将安装在不同的文件夹中,所以通常无关紧要。

运行不同版本的jre时,您的应用程序将使用PATH变量搜索Java可执行文件。因此,如果Java 32bit是PATH上的第一个,那么运行Java 64位应用程序时会遇到问题。您可以修改使用某个Java版本的路径,例如通过使用值C:\ java \ java6(32bit)定义环境变量JAVA32HOME并将命令更改为

%JAVA32HOME%\ bin \ java ...

或者您可以先在PATH变量中手动添加要使用的版本。请记住,在搜索PATH时找到的第一个java.exe实例将是执行的实例。

答案 3 :(得分:0)

为什么不从以下链接安装32位版本的Java:

Java Downloads for All Operating Systems

答案 4 :(得分:0)

考虑进入设置,选择活动的配置文件,然后单击高级设置,现在在弹出的菜单上选择要使用的版本。完成所有配置后,请使用终端来验证正确版本的用法。现在,通过终端... spec: containers: - image: johngrabner/py_blaw_service:v0.3.10 name: py-transcribe-service imagePullSecrets: - name: regcred ... 进行显示,并通过选择所需的版本并在获得的输出上按下Enter键来更新任何值