直接啟動tomcat時為tomcat指定JDK 而不是讀取環境變數中的配置
第一種:
在windows環境下以批處理檔案方式啟動tomcat,只要執行<CATALINA_HOME>/bin/startup.bat這個檔案,就可以啟動Tomcat。在啟動時,startup.bat會呼叫catalina.bat檔案,而catalina.bat會呼叫setclasspath.bat檔案來獲取JAVA_HOME和JRE_HOME這兩個環境變數的值,因此若要在tomcat啟動時指向特定的JDK,則需在setclasspath.bat檔案的開頭處加入以下內容:
rem ---------------------------------------------------------------------------
rem Set CLASSPATH and Java options
rem
rem $Id: setclasspath.bat 730396 2008-12-31 13:49:30Z markt $
rem ---------------------------------------------------------------------------
set JAVA_HOME=C:\Java\jdk1.60
set JRE_HOME=C:\Java\jre1.60
C:\Java\jdk1.60就是JDK的安裝路徑。
同下:
預設情況下,JDK安裝好後,在系統環境變數裡設定好JAVA_HOME就可了,但如果系統有多個web伺服器,而每個WEB伺服器根據需要,要使用不用的JDK版本,那麼如下設定就可以解決此類問題。
在tomcat所在目錄下的bin子目錄裡面有個setclasspath.bat檔案,
開啟並找到 if not "%JAVA_HOME%" == "" goto gotJdkHome 字樣。
在該行程式碼上面加上set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18
當然後面的值就是為這個tomcat所指定的特定的JDK安裝目錄。
設定好啟動tomcat即可。
rem表示註釋。
注:需要說明的是部分版本的tomcat5是沒有bat檔案的 它的啟動直接是exe,暫時還沒想到方法。
轉載第二種:
1、修改tomcat/bin/catalina.bat,增加 set JAVA_HOME=XXXXXX,其中XXXXXX為jdk 的路徑,如c:\j2sdk1_4
2、修改tomcat/bin/setclasspath.bat,同樣增加 set JAVA_HOME=XXXXXX
一般人常常忘了步驟2,導致的結果就是特定版本的java啟動tomcat,但是jdk用的還是系統預設的(在系統的JAVA_HOME中的設定)。
另外再說一點就是 如果電腦上裝了多個版本的jdk 譬如1.5跟1.6 ,都在path環境變數裡配置了。那麼在啟動tomcat的時候會怎麼樣呢。我做了一個簡單的測試:
1:首先在path裡新增兩個版本的jdk 1.5跟1.6
2:然後先用1.5先編譯專案A 編譯後複製部署到tomcat6中 啟動 可以正常訪問
3:再用1.5編譯執行2的步驟,也是可以正常訪問。
推測:電腦中安裝配置多個版本的jdk時,tomcat會根據部署的專案智慧選擇需要的版本的jdk.
全文貌似主要針對win系統