今天在作項目的時候,主管讓我在本機上啓動多個tomcat且指定不一樣的jdk環境。由於在企業的項目中個,對於同一個服務器中有多個jdk和tomcat,因此就須要手動指定不一樣的jdk。html
在網上找了不少資料,也沒解決。linux
其中看過一個csdn博客: 在tomcat下指定JDK路徑 ,剛開始就直接用了,可是沒有解決問題。最後仔細看來看了看TOMCAT_HOME/bin/startup.bat腳本文件,發現其解決方案是不合理的。web
最終找到了以下的博客:tomcat之一:指定tomcat運行時JDK版本 解決了問題。windows
下面說明如何修改tomcat運行時JDK版本tomcat
windows服務器
一、解壓下載的tomcat;post
二、找到bin下的setclasspath.bat文件;在文件的開始出添加以下代碼:測試
set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51 set JRE_HOME=D:\Program Files\Java\jdk7\jre7
上面的意思是設定JAVA_HOME和JRE_HOME的路徑;url
經過這裏咱們能夠看出能夠不設置JDK的環境變量;spa
linux
在bin下找到setclasspath.sh,在文件的最開始加入以下代碼:
set JAVA_HOME=/home/jdk/Java\jdk7\jdk1.7.0_51 set JRE_HOME=/home/jdk/Java\jdk7\jre7
修改了setclasspath文件以後,tomcat在啓動時便使用設定的JDK。
可是爲何這樣設置以後就能夠呢?
咱們都知道啓動tomcat能夠經過運行bin下的startup.bat,startup.bat會調用catalina.bat文件,而catalina.bat會調用setclasspath.bat文件來獲取JAVA_HOME和JRE_HOME這兩個環境變量的值,所以若要在tomcat啓動時指向特定的JDK,則需在setclasspath.bat文件的開頭處加上JAVA_HOME和JRE_HOME。
基於上面的運行方式,還有第二種修改方式,以下:
一、修改tomcat/bin/catalina.bat,增長 set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51
二、修改tomcat/bin/setclasspath.bat,一樣增長
set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51
set JRE_HOME=D:\Program Files\Java\jdk7\jre7
這兩種方式使用任何一種均可以實現修改tomcat的依賴JDK環境,同時能夠不配置JDK的環境變量。
有不正之處歡迎指正,謝謝!