Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

linux 下 启动tomcat 报:

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

先看Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat。只要在setclasspath.bat的开头声明环境变量,打开tomcat的bin目录下面的setclasspath.sh,添加红色部分,路径自己修改。windows  下用set。



#!/bin/sh 
# ----------------------------------------------------------------------------- 
# Set CLASSPATH and Java options 
# 
# $Id: setclasspath.sh 467182 2006-10-23 23:47:06Z markt $ 
# ----------------------------------------------------------------------------- 

export JAVA_HOME=/usr/lib/jvm/java-7-sun 
export JRE_HOME=/usr/lib/jvm/java-7-sun/jre 

# First clear out the user classpath 
CLASSPATH= 

# Make sure prerequisite environment variables are set 
if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then 
# Bugzilla 37284 
if $darwin && [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home" ]; then 
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home" 
else 
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" 
exit 1 
fi 
fi 
if [ -z "$JAVA_HOME" -a "$1" = "debug" ]; then 
echo "JAVA_HOME should point to a JDK in order to run in debug mode." 
exit 1 
fi 
if [ -z "$JRE_HOME" ]; then 
JRE_HOME="$JAVA_HOME" 
fi 

# If we're running under jdb, we need a full jdk. 
if [ "$1" = "debug" -o "$1" = "javac" ] ; then 
if [ "$os400" = "true" ]; then 
if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/javac ]; then 
echo "The JAVA_HOME environment variable is not defined correctly" 
echo "This environment variable is needed to run this program" 
echo "NB: JAVA_HOME should point to a JDK not a JRE" 
exit 1 
fi 
else 
if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/jdb -o ! -x "$JAVA_HOME"/bin/javac ]; then 
echo "The JAVA_HOME environment variable is not defined correctly" 
echo "This environment variable is needed to run this program" 
echo "NB: JAVA_HOME should point to a JDK not a JRE" 
exit 1 
fi 
fi 
fi 

  

原文地址:https://www.cnblogs.com/xiohao/p/5814968.html