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

Kar*_*ous 60 java servlets compiler-errors compilation

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

包javax.servlet不存在

我使用JDK 1.7.0和Tomcat 6.0.

Bal*_*usC 71

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

javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java
Run Code Online (Sandbox Code Playgroud)

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

  • 或者只是像Eclipse这样的IDE.然而,我建议继续学习,直到你几乎梦想它为止.否则,很难理解IDE如何在幕后工作. (8认同)
  • 是的,但将来考虑使用maven来解决这类问题 (2认同)

Swa*_*lih 24

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

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • Gradle等价物是`dependencies {compile group:'javax.servlet',name:'servlet-api',version:'2.4'}` (2认同)

Fra*_*ine 9

它是JSP还是Servlet?

好吧,这两个包实际上并没有像java.io那样内置到Java中.相反,它们带有支持Servlet的Web服务器(例如Tomcat).所以在Java编译器能够编译我们的Servlet之前,我们需要让它知道在哪里找到这两个包中的类.

所需的类通常存储在名为servlet.jar的文件中.此文件的确切位置取决于您使用的特定Web服务器软件,但对于Tomcat,您可以在主Tomcat安装目录的lib子目录中找到它(例如d:\ Program Files\Apache Group\jakarta- Tomcat的3.2.3\LIB \的servlet.jar).要使Java编译器能够编译Servlet,您需要将此文件添加到Java类路径中.默认情况下,Java仅在当前目录(".")中查找类.因此,"." 是默认的类路径.如果更改类路径以包含servlet.jar文件(Windows下的".; d:...\lib\servlet.jar",Unix中的".:/ usr /.../ lib/servlet.jar") ),那么Servlet应该编译得很好.

您可以指定在运行javac.exe时使用的类路径,如下所示:

d:\javadev> javac -classpath ".;d:\Program Files\Apache Group\ jakarta-tomcat-3.2.3\lib\servlet.jar" MyServlet.java

或者在Linux中javac使用:而不是;

server1> javac -classpath ".:./servlet/servlet.jar" MyServlet.java


Che*_*izz 6

在Linux环境中,软链接显然不起作用.你必须使用物理路径.例如在我的机器上我有一个软链接/usr/share/tomacat7/lib/servlet-api.jar并使用它作为我的classpath参数导致编译失败并出现相同的错误.相反,我不得不使用/usr/share/java/tomcat-servlet-api-3.0.jar哪个软链接指向的文件.


Kor*_*gay 5

这就是我解决问题的方法:

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

172556 次

最近记录:

6 年,8 月 前