我设置类路径如下: CLASS_PATH: C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib;C:\Program Files (x86)\Java\mysql-connector.jar;C:\Program Files (x86)\Java\sqljdbc_8.2\enu\mssql-jdbc-8.2.0.jre8.jar;
我还尝试在编译时使用 jar 文件:- java -cp C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar Hello.java
java -cp "C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar" Hello.java
java -cp .;C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar Hello.java
java -cp ".;"C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar" Hello.java
java -cp C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar;. Hello.java
java -cp "C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar";. Hello.java
我也尝试用类路径替换 -cp,但每次仍然收到以下错误:
C:\Program Files\Apache Software Foundation\Tomcat 10.0\webapps\16 servlet\WEB-INF\classes>javac -cp .;servlet-api.jar; Hello.java
Hello.java:2: error: package javax.servlet does not exist
import javax.servlet.*;
^
Hello.java:3: error: cannot find symbol
public class Hello implements Servlet
^
symbol: class Servlet
Hello.java:5: error: cannot find symbol
public void init(ServletConfig sc)throws ServletException
^
symbol: class ServletConfig
location: class Hello
Hello.java:5: error: cannot find symbol
public void init(ServletConfig sc)throws ServletException
^
symbol: class ServletException
location: class Hello
Hello.java:9: error: cannot find symbol
public ServletConfig getServletConfig()
^
symbol: class ServletConfig
location: class Hello
Hello.java:13: error: cannot find symbol
public void service(ServletRequest req,ServletResponse res)throws ServletException
^
symbol: class ServletRequest
location: class Hello
Hello.java:13: error: cannot find symbol
public void service(ServletRequest req,ServletResponse res)throws ServletException
^
symbol: class ServletResponse
location: class Hello
Hello.java:13: error: cannot find symbol
public void service(ServletRequest req,ServletResponse res)throws ServletException
^
symbol: class ServletException
location: class Hello
8 errors
My Hello.java Servlet 文件:-
import java.io.*;
import javax.servlet.*;
public class Hello implements Servlet
{
public void init(ServletConfig sc)throws ServletException
{
}
public ServletConfig getServletConfig()
{
return null;
}
public void service(ServletRequest req,ServletResponse res)throws ServletException
{
String name=req.getParameter("name");
PrintWriter out=res.getWriter();
out.println("Hello "+name);
}
public String getServletInfo()
{
return null;
}
public void destroy()
{
}
}
说实话,我也在 netbeans IDE 上尝试了其他 Servlet java 程序,它运行得很好,但即使在搜索并尝试了所有可能的解决方案之后,我也无法自己显式配置它,请大家帮我解决它。
最佳答案
Tomcat 10 目前是一个里程碑构建,因此对于第一步或有意义的开发工作来说并不是很好,除非您特别想找出问题的根本原因:
Tomcat 10 不向后兼容,因为整个 Java EE(或它所属的任何标签)现在已被新的 Jakarta EE 取代,因此您的 import javax.servlet.*
现在需要导入 jakarta.servlet.*
.
您可能会更乐意使用 Tomcat 9 并使用旧的(到处都有记录)javax.servlet.*
关于java - 编译时错误: package javax. servlet不存在导入javax.servlet.*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61277162/