How do I set my CLASSPATH for servlets?
Created Sep 3, 1999
Alex Chaffee
For running servlets, you need to set the CLASSPATH for your servlet
engine. This varies from engine to engine. Each has different rules
for how to set the CLASSPATH, which libraries and directories
should be included, and which libraries and directories should be
excluded. Note: for engines that do dynamic loading of servlets
(e.g. JRun, Apache Jserv, Tomcat), the directory containing your servlet class
files shoud not be in your CLASSPATH, but should be set in a
config file. Otherwise, the servlets may run, but they won't get
dynamically reloaded.
That depends.
For developing servlets, just make sure that the JAR file containing javax.servlet.* is in your CLASSPATH, and use your normal development tools (javac and so forth).
- For JSDK: JSDK_HOME/lib/jsdk.jar
- For Tomcat: TOMCAT_HOME/lib/servlet.jar
The Servlets 2.2 spec says that the following should automatically be included by the container, so you shouldn't have to add them to your CLASSPATH manually. (Classloader implementations are notoriously buggy, though, so YMMV.)
- classes in the webapp/WEB-INF/classes directory
- JAR files in the webapp/WEB-INF/lib directory
The Complete CLASSPATH Guide for Servlets (http://www.meangene.com/java/classpath.html) by Gene McKenna (mckenna@meangene.com) has detailed instructions on how to set your CLASSPATH for JavaWebServer and JRun.
See also http://www.jguru.com/faq/view.jsp?EID=413601