A quick way to rule out any typos in your environment variable is to use either the cd or ls command:
If neither of those work, you know you've got it wrong.
Also, unless you're trying to run more than one instance of Tomcat from the same codebase, there is no need to explicitly set the CATALINA_HOME environment variable. You only need to set JAVA_HOME or JRE_HOME. startup.sh will set the CATALINA_HOME variable for you.
In the past five years, I've never experienced a problem that seems so simple to solve but something that just comes out of the box (when one downloads and unzips Tomcat from http://tomcat.apache.org)!?
What it was is that after you set the system environmental variable, you are supposed to start tomcat by manually issuing the entire path, instead of issuing it from $CATALINA_HOME.
So, for example, if $CATALINA_HOME is set to /usr/local/tomcat/
instead of trying to run it from the command line by issuing:
One should do it manually:
cd /usr/local/tomcat /usr/local/tomcat $ sh startup.sh
And wa la! You'll see:
Using CATALINA_BASE: /usr/local/tomcat/ Using CATALINA_HOME: /usr/local/tomcat/ Using CATALINA_TMPDIR: /usr/local/tomcat/ Using JRE_HOME: /System/Library/frameworks/JavaVM.framework/Versions/1.5.0/Home