路径原因linux下tomcat无法启动
之前笔者几篇文章介绍了改路径原因的文章. 关联文章的地址
在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
原因:找不到jdk或者jre路径。
解决办法:在setclasspath.bat的扫尾声明环境变量,打开tomcat的bin目录下面的setclasspath.sh,添加红色部分,路径修改成自己机器jdk和jre路径便可。
    #!/bin/sh
 
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements. See the NOTICE file distributed with
 # this work for additional information regarding copyright ownership.
 # The ASF licenses this file to You under the Apache License, Version 2.0
 # (the "License"); you may not use this file except in compliance with
 # the License. You may obtain a copy of the License at
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
 # -----------------------------------------------------------------------------
 # Set CLASSPATH and Java options
 #
 # $Id: setclasspath.sh 795037 2009-07-17 10:52:16Z markt $
 # -----------------------------------------------------------------------------
 
 export JAVA_HOME=/opt/zimbra/jdk1.6.0_31
 export JRE_HOME=/opt/zimbra/jdk1.6.0_31/jre 
 
 # Make sure prerequisite environment variables are set
 if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then
 # Bugzilla 37284 (reviewed).
 if $darwin; then
 if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
 export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
 fi
 else
 JAVA_PATH=`which java 2>/dev/null`
 if [ "x$JAVA_PATH" != "x" ]; then
 JAVA_PATH=`dirname $JAVA_PATH 2>/dev/null`
 JRE_HOME=`dirname $JAVA_PATH 2>/dev/null`
 fi
 if [ "x$JRE_HOME" = "x" ]; then
 # XXX: Should we try other locations?
 if [ -x /usr/bin/java ]; then
 JRE_HOME=/usr
 fi
 fi
 fi
 if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then
 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" ] ; 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
 if [ -z "$BASEDIR" ]; then
 echo "The BASEDIR environment variable is not defined"
 echo "This environment variable is needed to run this program"
 exit 1
 fi
 if [ ! -x "$BASEDIR"/bin/setclasspath.sh ]; then
 if $os400; then
 # -x will Only work on the os400 if the files are:
 # 1. owned by the user
 # 2. owned by the PRIMARY group of the user
 # this will not work if the user belongs in secondary groups
 eval
 else
 echo "The BASEDIR environment variable is not defined correctly"
 echo "This environment variable is needed to run this program"
 exit 1
 fi
 fi
 
 # Don't override the endorsed dir if the user has set it previously
 if [ -z "$JAVA_ENDORSED_DIRS" ]; then
 # Set the default -Djava.endorsed.dirs argument
 JAVA_ENDORSED_DIRS="$BASEDIR"/endorsed
 fi
 
 # OSX hack to CLASSPATH
 JIKESPATH=
 if [ `uname -s` = "Darwin" ]; then
 OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
 if [ -d "$OSXHACK" ]; then
 for i in "$OSXHACK"/*.jar; do
 JIKESPATH="$JIKESPATH":"$i"
 done
 fi
 fi
 
 # Set standard commands for invoking Java.
 _RUNJAVA="$JRE_HOME"/bin/java
 if [ "$os400" != "true" ]; then
 _RUNJDB="$JAVA_HOME"/bin/jdb
 fi
文章结束给大家分享下程序员的一些笑话语录: 
警告
    有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
    小伙子说,“没事儿,我是一个程序员”。
    那妇女说,“这又怎样?”
    程序员说,“我们从来不关心 Warning,只关心 Error”
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号