I have a Servlet class in which I import javax.servlet.*
and javax.servlet.http.*
.
When I try to compile it in command prompt I get the error
package javax.servlet does not exist
I use JDK 1.7.0 and Tomcat 6.0. I compile using javac
. I am not using a build tool like Maven.
You need to add the path to Tomcat's /lib/servlet-api.jar
file to the compile time classpath.
javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java
The classpath is where Java needs to look for imported dependencies. It will otherwise default to the current folder which is included as .
in the above example. The ;
is the path separator for Windows; if you're using an Unix based OS, then you need to use :
instead.
If you're still facing the same complation error, and you're actually using Tomcat 10 or newer, then you should be migrating the imports in your source code from javax.*
to jakarta.*
.
import jakarta.servlet.*;
import jakarta.servlet.http.*;
In case you want to keep using javax.*
for whatever reason, then you should be downgrading to Tomcat 9 or older as that was the latest version still using the old javax.*
namespace.