the jre_home environment variable is not defined correctly this environment vari

1、分析startup.bat启动脚本:发现其调用了catalina.bat,而catalina.bat调用了setclasspath.bat

2、在setclasspath.bat的头部定义了JAVA_HOME和JRE_HOME的值,那么这里需要我们手动设置JAVA_HOME变量和JRE_HOME变量(红色代码为新添加)

注意:你所设置的变量要和自己的电脑中”环境变量“里的JAVA_HOME和JRE_HOME保持一致,我的是红色的代码。

@echo off

rem Licensed to the Apache Software Foundation (ASF) under one or more

rem contributor license agreements.  See the NOTICE file distributed with

rem this work for additional information regarding copyright ownership.

rem The ASF licenses this file to You under the Apache License, Version 2.0

rem (the "License"); you may not use this file except in compliance with

rem the License.  You may obtain a copy of the License at

rem

rem     http://www.apache.org/licenses/LICENSE-2.0

rem

rem Unless required by applicable law or agreed to in writing, software

rem distributed under the License is distributed on an "AS IS" BASIS,

rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

rem See the License for the specific language governing permissions and

rem limitations under the License.

 

rem ---------------------------------------------------------------------------

rem Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings

rem are valid and consistent with the selected start-up options and set up the

rem endorsed directory.

rem ---------------------------------------------------------------------------

 

set JAVA_HOME=D:\tomcat\apache-tomcat-7.0.65

set JRE_HOME=D:\Jdk8\jdk1.8.0_101\jre

 

rem Make sure prerequisite environment variables are set

 

rem In debug mode we need a real JDK (JAVA_HOME)

if ""%1"" == ""debug"" goto needJavaHome

 

rem Otherwise either JRE or JDK are fine

if not "%JRE_HOME%" == "" goto gotJreHome

if not "%JAVA_HOME%" == "" goto gotJavaHome

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

 

:needJavaHome

rem Check if we have a usable JDK

if "%JAVA_HOME%" == "" goto noJavaHome

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

set "JRE_HOME=%JAVA_HOME%"

goto okJava

 

:noJavaHome

echo The JAVA_HOME environment variable is not defined correctly.

echo It is needed to run this program in debug mode.

echo NB: JAVA_HOME should point to a JDK not a JRE.

goto exit

 

:gotJavaHome

rem No JRE given, use JAVA_HOME as JRE_HOME

set "JRE_HOME=%JAVA_HOME%"

 

:gotJreHome

rem Check if we have a usable JRE

if not exist "%JRE_HOME%\bin\java.exe" goto noJreHome

if not exist "%JRE_HOME%\bin\javaw.exe" goto noJreHome

goto okJava

 

:noJreHome

rem Needed at least a JRE

echo The JRE_HOME environment variable is not defined correctly

echo This environment variable is needed to run this program

goto exit

 

:okJava

rem Don't override the endorsed dir if the user has set it previously

if not "%JAVA_ENDORSED_DIRS%" == "" goto gotEndorseddir

rem Set the default -Djava.endorsed.dirs argument

set "JAVA_ENDORSED_DIRS=%CATALINA_HOME%\endorsed"

:gotEndorseddir

 

rem Don't override _RUNJAVA if the user has set it previously

if not "%_RUNJAVA%" == "" goto gotRunJava

rem Set standard command for invoking Java.

rem Also note the quoting as JRE_HOME may contain spaces.

set _RUNJAVA="%JRE_HOME%\bin\java.exe"

:gotRunJava

 

rem Don't override _RUNJDB if the user has set it previously

rem Also note the quoting as JAVA_HOME may contain spaces.

if not "%_RUNJDB%" == "" goto gotRunJdb

set _RUNJDB="%JAVA_HOME%\bin\jdb.exe"

:gotRunJdb

 

goto end

 

:exit

exit /b 1

 

:end

exit /b 0

3、添加变量后保存,并关闭文件,重新启动tomcat

你可能感兴趣的:(Tomcat,tomcat,jre)