2011-11-26 170 views
4

我剛剛發現,如果我使用的是64位JDK,Apache Tomcat無法作爲Windows服務運行。因此我在Windows上另外安裝了Java 32位。在Java 32位和Java 64位之間切換

問題是,當我使用java -version檢查java版本時,它仍然顯示64位仍在運行。你如何從64位切換到32位?如果能夠在以後切換回64位,那也不錯。

回答

7

問題是當我使用java -version檢查java版本時,它仍然顯示64位仍在運行。

這不完全正確。沒有Java的副本仍在運行。 (或者,如果有,你不是說要當您運行java -version

這是什麼實際上所示的是命令shell運行64位Java時,你給它的命令名稱java 。原因是shell的%PATH%變量告訴shell查看包含64位版本的目錄,而不是32位版本;即你沒有改變它!

您需要做的是將shell的%PATH%和%JAVA_HOME%環境變量更改爲指向正確的位置。 %JAVA_HOME%應該指向安裝目錄,並且%PATH%變量應該包含%JAVA_HOME%\ bin。

+1

*%PATH%變量應該包含%JAVA_HOME%\ bin。*這不會幫助Windows,但它對於Linux來說是正確的。在Windows上,java從%WINDIR%開始,所以修改PATH將沒有任何效果。應該指示tomcat腳本從指定位置啓動java。 – bestsss

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環境變量,以便它包含要使用的JDK的bin目錄的路徑。請參閱:http://www.java.com/en/download/help/path.xml
請記住關閉命令shell並在更改PATH變量後重新打開它。

1

我發現,在Windows 7上,我不得不爲了編輯在多個地方的註冊表項JAVA_HOME路徑完全切換到另一個Java安裝不同的路徑。在環境變量中更改JAVA_HOME是不夠的。您可以自己做一個快速測試:

  1. 重命名您的Java主目錄。
  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_HOME路徑在每次出現註冊表每一個Java主路徑。

+0

-1。這是因爲您的路徑包含對舊Java安裝的另一個引用。如果你修好了路線,這不會是一個問題。 – iheanyi