关于java:Compile time error: package javax.servlet does not exist import javax.servlet.*

Compile time error: package javax.servlet does not exist import javax.servlet.*

我设置的类路径如下:
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

1
2
3
4
5
6
7
8
9
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,但每次仍然出现以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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

我的 Hello.java Servlet 文件:-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    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()
    {

    }
}

tbh 我也在 netbeans IDE 上尝试过其他 Servlet java 程序,它运行完美,但即使在搜索并尝试了所有可能的解决方案之后,我也无法自己明确配置它,请大家帮我解决它。


Tomcat 10 目前是一个里程碑版本,因此对于第一步或有意义的开发工作来说并不是很好,除非您特别想找出问题的根本原因:

Tomcat 10 不向后兼容,因为整个 Java EE(或它所属的任何标签)现在都被新的 Jakarta EE 所取代,因此您的 import javax.servlet.* 现在需要是 import jakarta.servlet.*.

与其立即调整所有内容,不如使用 Tomcat 9 并使用旧的和(随处可见的)javax.servlet.*