最近刚进入一个新项目,要求源码编写规范以及编译级别用Jdk5,但是很多模块用了Jdk6打的Jar。
如果我设置了module的Jdk环境之后,运行tomcat的时候默认是用的是module的jdk。如此这般,运行的时候加载高版本编译的class文件的时候就会报版本错误。
我们知道,Jdk是向下兼容的。所以,只要把tomcat运行的jre换成高版本的就可以了。处于这个想法,我决定把tomcat的运行环境搞成1.7的。
Tomcat版本:apache-tomcat-6.0.33
打开%TOMCAT_HOME%\bin\setclasspath.bat,找到文件的这个位置。在:gotJdkHome的后边加上自己的个性化配置,就可以了,但是前提条件是环境变量里已经配置了java_home
这段脚本的大概意思是,如果当前用户下的Java_home不为空,就跳到gotJdkHome这个地方,我们在这个地方把jdk_home给重新设置一遍就OK了。
rem Make sure prerequisite environment variables are set if not "%JAVA_HOME%" == "" goto gotJdkHome if not "%JRE_HOME%" == "" goto gotJreHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined echo At least one of these environment variable is needed to run this program goto exit :gotJreHome if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome if not ""%1"" == ""debug"" goto okJavaHome echo JAVA_HOME should point to a JDK in order to run in debug mode. goto exit :gotJdkHome echo --------个性化修改------ echo 找到了JDK配置,JDK_HOME = %JAVA_HOME% set "TEMP_VR_IDEA=C:\java\jdk1.7.0_05" if "%JAVA_HOME%" == %TEMP_VR_IDEA% goto pEnvHasAlreadySetted set "JAVA_HOME=%TEMP_VR_IDEA%" goto pEnvWasSettedToNewJustNow :pEnvHasAlreadySetted echo JAVA_HOME已经设置为JDK7,无需修改。 goto pEnvSettedFinished :pEnvWasSettedToNewJustNow echo JAVA_HOME手动设置为 %JAVA_HOME% :pEnvSettedFinished echo ------------------------ if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome if not "%JRE_HOME%" == "" goto okJavaHome set "JRE_HOME=%JAVA_HOME%" goto okJavaHome