tomcat7使用jdk1.7;tomcat8使用jdk1.8。兩個tomcat在一臺機器下同時啓動,你會發現這兩個tomcat使用的是一個版本的jdk,java
那就是你配置過的JAVA_HOME。sql
查看你的Windows下當前Java版本tomcat
查看個人tomcat7引入的java版本服務器
第一步:知道tomcat7的根目錄下的startup.bat文件oracle
{TOMCAT_HOME}/startup.bat,在最後一行添加:pause;,進行保存測試
這樣,啓動tomcat時,運行startup.bat文件的DOS命令就不會自動關閉。spa
這樣,咱們就能夠看到tomcat所使用的幾個主要的變量。 調試
CATALINA_BASE: blog
CATALINA_HOME:部署
CATALINA_TMPDIR: 臨時文件存放位置
JRE_HOME: JVM所在根路徑(運行java文件)
CLASSPATH:
咱們能夠看到,tomcat7的java配置是jdk1.8,說明它也是從JAVA_HOME裏拿到的。
想要解決這個問題,能夠這樣:
tomcat8不用作修改,默認從環境變量JAVA_HOME中取;修改tomcat7中對於JAVA_HOME的引用。
修改tomcat7的jdk使用路徑。
方案一:修改startup.bat。(推薦使用,簡單粗暴)
文件位置:${TOMCAT_HOME}/bin/startup.bat
在正式代碼開始前,添加JAVA_HOME和JRE_HOME的配置。
:配置java路徑 set JAVA_HOME=D:\oracle-java-1.7-x86\jdk1.7.0_79 set JRE_HOME=D:\oracle-java-1.7-x86\jdk1.7.0_79\jre
保存,重啓tomcat。
JRE的配置修改爲功,將startup.bat中的pause;去掉便可。
教你一招:這裏也可使用相對路徑哦。
好比:個人tomcat和jdk都防在D盤根目錄下
set JAVA_HOME=..\oracle-java-1.7-x86\jdk1.7.0_79 set JRE_HOME=..\oracle-java-1.7-x86\jdk1.7.0_79\jre
路徑正確,引用成功。
路徑錯誤,引用失敗,報錯以下:
找不到JRE。
說明:一般咱們在新服務器上部署項目時,每每須要本身提供tomcat和jdk,爲了方便,咱們就能夠這樣作:
將jdk放到Tomact目錄下,在startup.bat文件中使用相對路徑指定JAVA_HOME和JRE_HOME的位置。
這樣,咱們不只省去了配置java環境變量的麻煩,還省去了爲某個tomcat指定jdk的麻煩;
並且,tomcat想放到哪一個磁盤的哪一個目錄下,位置能夠隨時進行遷移,而沒必要再次修改startup.bat文件中tomcat對於jdk的引用。
方案二:修改setclasspath.bat文件
位置:${TOMCAT_HOME}/bin/setclasspath.bat
第一步:修改java.exe的路徑(Java類)
打開該文件,找到指定jdk的這句話
這就是爲何tomcat默認從環境變量中尋找jdk的緣由。
:原來的 :set _RUNJAVA="%JRE_HOME%\bin\java.exe" :修改後 set _RUNJAVA="D:\oracle-java-1.7-x86\jdk1.7.0_79\bin\java.exe"
修改爲你的jdk所在路徑,保存。
第二步:修改jdb.exe的路徑(Java類調試器)
仍是該文件,修改,保存,重啓tomcat便可。
:修改前 set _RUNJDB="%JAVA_HOME%\bin\jdb.exe" :修改後 set _RUNJDB="D:\oracle-java-1.7-x86\jdk1.7.0_79\bin\jdb.exe"
能夠將原來的代碼使用:進行註釋掉,這樣,後期也容易改回去。
java.exe:JVM
jdb.exe: JAVA調試器
注意:這裏用方式一的pause;沒法進行測試,由於咱們並無改JRE_HOME的值。
因此,測試的話,須要將jdk1.8編譯好的項目放入到tomcat7中,假若報錯信息是:java版本不匹配,則證實已經修改爲功。