编译错误:包 javax.servlet 不存在

我有一个软件包,其中我导入javax.servlet.*和javax.servlet.http.*当我尝试在命令提示符下编译它时,我得到错误

包 javax.servlet 不存在

我使用JDK 1.7.0和Tomcat 6.0。


答案 1

您需要将 Tomcat 文件的路径添加到编译时类路径中。/lib/servlet-api.jar

javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java

类路径是 Java 需要查找导入的依赖项的地方。否则,它将默认为当前文件夹,如上面的示例所示。是 Windows 的路径分隔符;如果您使用的是基于Unix的操作系统,则需要改用。.;:

如果您仍然遇到相同的压缩错误,并且您实际上使用的是Tomcat 10或更高版本,那么您应该将源代码中的导入从 迁移到 。javax.*jakarta.*

import jakarta.servlet.*;
import jakarta.servlet.http.*;

如果您出于任何原因想要继续使用,那么您应该降级到Tomcat 9或更早版本,因为这是仍在使用旧命名空间的最新版本。javax.*javax.*

另请参阅:


答案 2

如果您正在使用maven项目,请将以下依赖项添加到您的pom中.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

推荐