java编译错误:包javax。servlet不存在
我有一个导入javax的包。servlet.*和javax。servlet。http* 当我试图在命令提示符下编译它时,我得到了错误
package javax.servlet does not exist
我使用JDK1.7.0和Tomcat6.0
你可以在下面搜索框中键入要查询的问题!
我有一个导入javax的包。servlet.*和javax。servlet。http* 当我试图在命令提示符下编译它时,我得到了错误
package javax.servlet does not exist
我使用JDK1.7.0和Tomcat6.0
# 1 楼答案
如果您正在使用maven项目,那么将以下依赖项添加到pom中。xml
# 2 楼答案
它是JSP还是Servlet
这两个包实际上不像Java那样内置在Java中。伊奥是。相反,它们配备了支持Servlet的Web服务器(例如Tomcat)。因此,在Java编译器能够编译我们的Servlet之前,我们需要让它知道在这两个包中的哪里可以找到类
所需的类通常存储在名为servlet的文件中。罐子此文件的确切位置取决于您使用的特定Web服务器软件,但对于Tomcat,您可以在Tomcat主安装目录的lib子目录中找到它(例如d:\Program Files\Apache Group\jakarta-Tomcat-3.2.3\lib\servlet.jar)。为了使Java编译器能够编译servlet,您需要将此文件添加到Java类路径中。默认情况下,Java在当前目录(“.”)中查找类只有因此,”是默认的类路径。如果更改类路径以包含servlet。jar文件(“;d:…\lib\servlet.jar”在Windows下,.:/usr/../lib/servlet.jar”在Unix中),然后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
# 3 楼答案
您需要将Tomcat的
/lib/servlet-api.jar
文件的路径添加到编译时类路径中类路径是Java需要查找导入的依赖项的地方。否则,它将默认为当前文件夹,该文件夹在上述示例中作为
.
包含。;
是窗口的路径分隔符;如果您使用的是基于Unix的操作系统,那么您需要使用:
如果您仍然面临相同的投诉错误,并且实际上使用的是Tomcat 10或更高版本,那么您应该将源代码中的导入从
javax.*
迁移到jakarta.*
如果出于任何原因想继续使用
javax.*
,那么应该降级到Tomcat 9或更旧版本,因为这是仍然使用旧javax.*
名称空间的最新版本另请参见:
# 4 楼答案
从您的安装路径\tomcat\lib\servlet api的位置复制文件“servlet api.jar”。jar并将文件粘贴到您的Java目录您的\u institlation\u PATH\Java\jdk1。8.0_121\jre\lib\ext
这将起作用(经过测试)
# 5 楼答案
这就是我解决问题的原因:
# 6 楼答案
在linux环境中,软链接显然不起作用。您必须使用物理路径。例如,在我的机器上,我在
/usr/share/tomacat7/lib/servlet-api.jar
有一个软链接,使用它作为我的类路径参数导致编译失败,并出现相同的错误。相反,我不得不使用/usr/share/java/tomcat-servlet-api-3.0.jar
,这是软链接指向的文件