Java编译提供了有关servlet库的错误

时间:2011-04-08 20:39:25

标签: java tomcat servlets tomcat6

我正在尝试编译一个导入一些servlet库的简单类。由于我没有将tomcat目录添加到类路径中,让系统知道在哪里查找tomcat / lib文件夹中的servlet库有什么好的做法?

目前,系统只会出现如下错误:

ackage javax.servlet does not exist
[javac] import javax.servlet.ServletException;

5 个答案:

答案 0 :(得分:2)

如果您只想使用java提供的工具,则必须查看javac工具的JavaDocs并手动将所需的jar添加到类路径中。

除非这是一个学习练习并且你试图以“艰难的方式”进行,否则我建议您查看Maven,Ant或您最喜欢的IDE,因为它们在您未来的职业生涯中会更有用。

答案 1 :(得分:1)

如果您使用eclipse,则可以将application server runtime library添加到构建路径,或者可以add jar从其他文件夹添加到您的java构建路径配置。

答案 2 :(得分:1)

所以你实际上是在询问如何使用javac编译servlet类?您只需要使用通常的Java方式将依赖项放在compiletime类路径中。这与Servlets或其他东西没有特别的关系。

您可以使用-cp的{​​{1}}或-classpath参数来执行此操作。它接受一个冒号分隔的(相对)路径字符串来打包根文件夹和JAR文件。

javac

类路径中的javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.java 代表当前目录。在Windows中,路径分隔符是分号。

答案 3 :(得分:1)

我在日食中遇到了同样的问题。

要修复它,

右键单击项目资源管理器中的Web项目 - >属性 - >项目方面 - >按ALT + R - >选择你想要的服务器 - >申请 - >好的,完成。

注意: 我正在使用Eclipse Helios。

你应该已经在eclipse中添加了服务器。 Installing Apache Tomcat Server in eclipse

答案 4 :(得分:0)

这取决于您的IDE。每个优秀的Java IDE都提供了一种指定类外路径的方法。

如果您使用Maven作为构建工具,那么最好的方法是为这些库指定“提供”范围。它们将在编译时使用,但不会打包在最后的战争中:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
</dependency>