在Java 32位和Java 64位之间切换

我刚刚发现,如果我使用的是64位JDK,那么Apache Tomcat无法作为Windows服务运行。 因此我在Windows上另外安装了Java 32位。

问题是当我使用java -version检查java版本时,它仍然显示64位仍在运行。 你如何从64位切换到32位? 能够稍后切换回64位也是很好的。

问题是当我使用java -version检查java版本时,它仍然显示64位仍在运行。

这并不完全正确。 没有Java的副本仍在/已经运行。 (或者,如果存在, 在运行java -version时不会与进行对话。)

实际上表明,当你给它命令名称java时,你的命令shell运行64位Java。 原因是shell的%PATH%变量告诉shell查看包含64位版本的目录,而不是32位版本; 即你没有改变它!

您需要做的是更改shell的%PATH%和%JAVA_HOME%环境变量以指向正确的位置。 %JAVA_HOME%应指向安装目录,%PATH%变量应包含%JAVA_HOME%\ bin。

您必须将JAVA_HOME环境变量设置为要使用的JDK版本的路径。

对于2000 / XP,请参阅: http : //confluence.atlassian.com/display/DOC/Setting+the+JAVA_HOME+Variable+in+Windows

对于Windows 7,请参阅: http : //www.itechtalk.com/thread3595.html (这不是设置JAVA_HOME变量的教程,而是一个通用环境变量:请根据您的需要进行调整。)

如果要更改在命令行上运行java -version时看到的Java版本,则必须更改PATH环境变量,以使其包含要使用的JDK的bin目录的路径。 请参阅: http : //www.java.com/en/download/help/path.xml
记得关闭命令shell并在更改PATH变量后重新打开它。

我发现在Windows 7上,我必须在多个位置的注册表项中编辑JAVA_HOME路径,以便完全切换到另一个java安装的不同路径。 在环境变量中更改JAVA_HOME是不够的。 你可以自己做一个快速测试:

  1. 重命名Java Home目录。
  2. 更新%JAVA_HOME%环境变量值以反映JAVA_HOME的新名称。
  3. 在新的命令窗口中运行java -version

您将收到一条错误消息

 Error: could not open `C:\your_java_home_path\jre7\lib\amd64\jvm.cfg' 

因此,它与Linux上的行为不同,仅仅更改$JAVA_HOME就足以将指针更改为java的新安装目录。

看起来Windows硬编码多个位置的注册表中的Java主路径。

 Start --> Run --> regedit 

HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / ...展开每个目录,并将您发现硬编码的每个java主路径编辑到发生它的每个注册表中的新JAVA_HOME路径。