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

时间:2011-11-26 09:43:01

标签: java tomcat

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

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

3 个答案:

答案 0 :(得分:7)

  

问题是当我使用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。

答案 1 :(得分:1)

您必须将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环境变量,使其包含{{1}的路径您要使用的JDK的目录。见:http://www.java.com/en/download/help/path.xml
切记关闭命令shell并在更改bin变量后重新打开它。

答案 2 :(得分:1)

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

  1. 重命名Java Home目录。
  2. 更新您的%JAVA_HOME%环境变量值以反映 您JAVA_HOME的新名称。
  3. 在新的命令窗口中运行java -version
  4. 您将收到一条错误消息

    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_HOME路径的每个java主路径。