I’m trying to set up Apache Tomcat on Cygwin and when I run the configtest.sh script, I get this error. My environment variables all appear to be correct, but when java complains about not finding classes, it tries looking in some weird paths like it’s starting from the current directory:
Using CATALINA_BASE: C:\cygwin\usr\local\apache-tomcat-7.0.26
Using CATALINA_HOME: C:\cygwin\usr\local\apache-tomcat-7.0.26
Using CATALINA_TMPDIR: C:\cygwin\usr\local\apache-tomcat-7.0.26\temp
Using JRE_HOME: C:\Program Files (x86)\Java\jre7
Using CLASSPATH: C:\cygwin\usr\local\apache-tomcat-7.0.26\bin\bootstrap.jar;C:\cygwin\usr\local\apache-tomcat-7.0.26\bin\tomcat-juli.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/startup/Bootstrap
<<No stacktrace available>>
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.startup.Bootstrap not found in java.lang.ClassLoader$1{urls=[
file:/usr/local/apache-tomcat-7.0.26/bin/C,
file:/usr/local/apache-tomcat-7.0.26/bin/\cygwin\usr\local\apache-tomcat-7.0.26\bin\bootstrap.jar;C,
file:/usr/local/apache-tomcat-7.0.26/bin/\cygwin\usr\local\apache-tomcat-7.0.26\bin\tomcat-juli.jar], parent=null}
at java.net.URLClassLoader.findClass(URLClassLoader.java:531)
at java.lang.ClassLoader.loadClass(ClassLoader.java:341)
at java.lang.ClassLoader$1.loadClass(ClassLoader.java:1112)
at java.lang.ClassLoader.loadClass(ClassLoader.java:293)
Configuration error detected!
Can anyone tell me what I’m doing wrong?
The file URLs shown in the stacktrace don’t look correct. The classpath looks like it was split by the unix path separator, not the windows one, and the slashes are windows slashes, not unix ones.
If I were you, I’d try to set any path related environment variables in cygwin rather than rely on windows, since you are running a bash script. You can make the cygwin value dependent on the windows variables by using the cygpath program: