全部,
我刚刚安装了 apache tomcat,测试安装确实显示了“成功安装”apache 页面。我确实毫无问题地执行了 HelloWorld 示例。所以现在,我在 \apache-tomcat-XXX\webapps\mine
下创建了自己的 Web 应用程序,其中包含以下 2 个子文件夹:
\apache-tomcat-XXX\webapps\mine\classes
\apache-tomcat-XXX\webapps\mine\lib
我创建了一个新的类文件 HelloWorldAgain.java
,内容如下:
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* My test servlet
*
* @author Liz Warner
*/
public class Hi extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hola</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<h1> Hi </h1>");
out.println("</body>");
out.println("</html>");
}
}
但是,当我从命令行编译代码时,出现与
相关的错误> Hi.java:4: package javax.servlet does not exist
import javax.servlet.*;
^
Hi.java:5: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
Hi.java:13: cannot find symbol
symbol: class HttpServlet
public class Hi extends HttpServlet {
^
Hi.java:15: cannot find symbol
symbol : class HttpServletRequest
location: class Hi
public void doGet(HttpServletRequest request,
^
Hi.java:16: cannot find symbol
symbol : class HttpServletResponse
location: class Hi
HttpServletResponse response)
^
Hi.java:17: cannot find symbol
symbol : class ServletException
location: class Hi
throws IOException, ServletException
我设置了以下环境(Windows XP 环境)变量:
JAVA_HOME: C:\Program Files\Java\jdk1.6.0_21 CATALINA_HOME: C:\Apache Tomcat\apache-tomcat-7.0.22
最佳答案
您的 Java 类使用不属于 Java SE 的其他 Java 类(“普通”或“桌面”Java)——例如 javax.servlet
中的 Java EE 类。因此,编译器不知道它们,除非您告诉它在哪里寻找这些类。您需要找到类似 javaee.jar
或 servlet.jar
的东西——Tomcat 应该将它们包含在它的 libs/
目录中,虽然我忘记了正是他们所谓的。
然后使用 javac -cp path/to/javaee.jar
将它们添加到编译命令 ... 例如。
这实际上不是 Tomcat 或 J2EE 特有的,它只是基本的 Java 编译。
关于jakarta-ee - 编译错误 - Tomcat,jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799857/