3

编译 Java 文件时收到此错误消息:

error: package javax.servlet does not exist

我为 Jave EE SDK 安装了一个大的 .SH 文件,Java 版本给了我这个:

java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

我需要安装其他东西吗?

我使用 Tomcat 7 作为位于/Library/Tomcat/ 命令行的简单文本编辑器中的 Servlet 容器。

4

4 回答 4

5

您需要servlet-api在编译时类路径中包含 JAR。

如果您使用的是 maven,请将其添加为 pom.xml 中的依赖项。

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

这将包括编译时的依赖项,并在运行时使用 Tomcat 的依赖项。

如果没有,您应该通过 Eclipse 添加 Tomcat 作为项目目标运行时。

这个问题有一些关于将这些包含在 Eclipse 项目中的有用信息: 如何在我的 Eclipse 项目中导入 javax.servlet API?

如果您使用命令行来构建项目,您很可能需要将这些添加到类路径参数中javac以将这些 jars 添加到类路径中。

看到这个问题:如何从命令提示符编译 servlet?

关键部分是:

javac -classpath C:\apache-tomcat-7.0.23\lib\servlet-api.jar MyTestServlet.java
于 2012-12-31T18:30:59.140 回答
2

一个 Windows 用户:

我自己也遇到了这个问题,这是一个很好的解决方案

只需将此路径添加到您的 CLASSPATH 环境变量“C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet-api.jar”

jar 名称之前的路径可能因您的安装而异。只需转到您的tomcat的lib文件夹并复制整个目录即可。

初学者的更多信息:您可以在此处找到环境变量 MyComputer -> 属性 -> 高级设置 -> 高级选项卡

现在您可以简单地转到 cmd 提示符并键入“javac Myclass.java”

希望这可以帮助!

于 2013-10-27T09:10:11.340 回答
1

在 Wikipedia 上阅读有关 java 类路径的信息。

准备好“概述和架构”下的最后一段。

在你的例子中

javax.servlet 包不是引导包或扩展包的一部分,因此必须手动将其添加到类路径中。ALJI 向您展示了如何从命令行执行此操作。上面的 Wikipedia 链接也提供了示例。

推荐

每个人在开始一门新语言时都会遇到这些类型的问题。Google 有很多教程可以帮助您对 Java 类路径有一个基本的了解。

于 2012-12-31T19:27:22.393 回答
1
javac -classpath /Library/Tomcat/lib/servlet-api.jar *.java
于 2012-12-31T18:50:25.260 回答