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

新手上路,请多包涵

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

包 javax.servlet 不存在

我使用 JDK 1.7.0 和 Tomcat 6.0。

原文由 Karadous 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您需要将 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.*;

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

也可以看看:

原文由 BalusC 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

原文由 Swalih 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题