Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:即使在添加CLASSPATH变量后,包javax.servlet.http也不存在_Java_Tomcat_Servlets_Path_Classpath - Fatal编程技术网

错误:即使在添加CLASSPATH变量后,包javax.servlet.http也不存在

错误:即使在添加CLASSPATH变量后,包javax.servlet.http也不存在,java,tomcat,servlets,path,classpath,Java,Tomcat,Servlets,Path,Classpath,我正在尝试实现基本的HelloServlet.java程序。 但它似乎正在产生这些错误 HelloServlet.java:7: error: cannot find symbol public class HelloServlet extends HttpServlet { ^ symbol: class HttpServlet HelloServlet.java:11: error: cannot find symbol

我正在尝试实现基本的HelloServlet.java程序。 但它似乎正在产生这些错误

HelloServlet.java:7: error: cannot find symbol
public class HelloServlet extends HttpServlet {
                                  ^
  symbol: class HttpServlet
HelloServlet.java:11: error: cannot find symbol
   public void init() throws ServletException {
                             ^
  symbol:   class ServletException
  location: class HelloServlet
HelloServlet.java:16: error: cannot find symbol
   public void doGet(HttpServletRequest request, HttpServletResponse response)
                     ^
  symbol:   class HttpServletRequest
  location: class HelloServlet
HelloServlet.java:16: error: cannot find symbol
   public void doGet(HttpServletRequest request, HttpServletResponse response)
                                                 ^
  symbol:   class HttpServletResponse
  location: class HelloServlet
HelloServlet.java:17: error: cannot find symbol
      throws ServletException, IOException {
             ^
  symbol:   class ServletException
  location: class HelloServlet
HelloServlet.java:3: error: package javax.servlet does not exist
import javax.servlet.*;
^
HelloServlet.java:4: error: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
7 errors
我已经为jar文件添加了类路径

nithinchandranp@b-40:~$ echo ${CLASSPATH}
/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/*
nithinchandranp@b-40:~$ 
现在我做错了什么?
请帮助..

编译java类时,可以使用
-cp
参数提供类所需的类路径/库。对于您的案例,您需要提供给
servlet api.jar
。您可以编译Servlet,如下所示:


javac-cp/usr/local/ceral/tomcat/9.0.6/libexec/lib/servlet-api.jar HelloServlet.java
编译java类时,可以使用
-cp
参数提供类所需的类路径/库。对于您的案例,您需要提供给
servlet api.jar
。您可以编译Servlet,如下所示:


javac-cp/usr/local/ceral/tomcat/9.0.6/libexec/lib/servlet-api.jar HelloServlet.java

这是我的错误

这就是我通过命令行创建类路径的方式

 export CLASSPATH=/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/*
我创建的目录不是ApacheTomcat,而是ApacheTomcat(中间有一个空格)

也许这就是CLASSPATH变量无法识别正确位置的原因

我将目录名改为ApacheTomcat(删除了空格)

现在,我在.bashrc文件中定义了CLASSPATH变量,如下所示:

#classpath
export CLASSPATH=/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/*
现在,当我执行echo${CLASSPATH}时,我得到了我提到的所有jar文件

nithinchandranp@b-40:~$ echo ${CLASSPATH}
/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/annotations-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-ant.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-ha.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-storeconfig.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-tribes.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/ecj-4.6.3.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/el-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jasper-el.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jasper.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jaspic-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jsp-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/servlet-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-coyote.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-dbcp.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-es.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-fr.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-ja.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-ru.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-jdbc.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-jni.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-util.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-util-scan.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-websocket.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/websocket-api.jar

这是我的一个错误

这就是我通过命令行创建类路径的方式

 export CLASSPATH=/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/*
我创建的目录不是ApacheTomcat,而是ApacheTomcat(中间有一个空格)

也许这就是CLASSPATH变量无法识别正确位置的原因

我将目录名改为ApacheTomcat(删除了空格)

现在,我在.bashrc文件中定义了CLASSPATH变量,如下所示:

#classpath
export CLASSPATH=/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/*
现在,当我执行echo${CLASSPATH}时,我得到了我提到的所有jar文件

nithinchandranp@b-40:~$ echo ${CLASSPATH}
/home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/annotations-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-ant.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-ha.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-storeconfig.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/catalina-tribes.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/ecj-4.6.3.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/el-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jasper-el.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jasper.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jaspic-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/jsp-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/servlet-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-api.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-coyote.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-dbcp.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-es.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-fr.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-ja.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-i18n-ru.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-jdbc.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-jni.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-util.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-util-scan.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/tomcat-websocket.jar /home/nithinchandranp/ApacheTomcat/apache-tomcat-8.5.34/lib/websocket-api.jar

末尾带有*的类路径不适用于jar数据集。必须将每个jar放在类路径中。

末尾带有*的类路径不能用于jar数据集。你必须把每个jar放在你的类路径中。

你在哪里看到这些错误,你在使用IDE吗?不,我在终端工作,你在哪里看到这些错误,你在使用IDE吗?不,我在终端工作。当我检查Stackoverflow的其他问题时,我确实找到了编译java文件的方法。这对我来说很好。但是使用类路径要简单得多,对吗?就像我们不必在编译期间提及所有jar文件一样,当我检查Stackoverflow的其他问题时,我确实找到了编译java文件的方法。这对我来说很好。但是使用类路径要简单得多,对吗?就像我们不必在编译期间提及所有jar文件一样。就像我在回答中提到的,我使用了通配符(*)将所有jar文件包含在特定目录中,并且所有jar文件都添加到了类路径中。单独添加它并不是我在回答中提到的必要条件,我使用了通配符(*)来包含特定目录中的所有jar文件,并且所有jar文件都被添加到了类路径中