错误:即使在添加CLASSPATH变量后,包javax.servlet.http也不存在
我正在尝试实现基本的HelloServlet.java程序。 但它似乎正在产生这些错误错误:即使在添加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: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文件都被添加到了类路径中