我刚刚发现,如果我使用的是64位JDK,那么Apache Tomcat无法作为Windows服务运行。因此我在Windows上另外安装了Java 32位。
问题是当我使用java -version检查java版本时,它仍然显示64位仍在运行。你如何从64位切换到32位?能够稍后切换回64位也是很好的。
答案 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
是不够的。你可以自己做一个快速测试:
%JAVA_HOME%
环境变量值以反映
您JAVA_HOME
的新名称。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_HOME
路径的每个java主路径。