当前位置: 首页 > 知识库问答 >
问题:

在Java Web项目中编译servlet和其他类

百里朝
2023-03-14

ComputerSV.java:13: error: cannot find symbol
        ArrayList<Computer> computers = new ArrayList<>();
                  ^
  symbol:   class Computer
  location: class ComputerSV
ComputerSV.java:15: error: cannot find symbol
            new Computer(
                ^
  symbol:   class Computer
  location: class ComputerSV
ComputerSV.java:25: error: cannot find symbol
            new Computer(
                ^
  symbol:   class Computer
  location: class ComputerSV
3 errors

我的Servlet源代码是:

package com.lcdss.compmng.controller;

import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;[Imgur](http://i.imgur.com/D6rN3UA.png)
import javax.servlet.http.HttpServletResponse;

class ComputerSV extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        ArrayList<Computer> computers = new ArrayList<>();
        computers.add(
            new Computer(
                1,
                "HP",
                "hostname",
                "Windows 10 Pro x64",
                "Intel I7 7700K 4.2 GHz",
                2048,
                8196,
                "Anapolis"
            ),
            new Computer(
                2,
                "DELL",
                "hostname",
                "Windows 10 Home Basic x64",
                "Intel I7 7500U 2.5 GHz",
                512,
                4098,
                "Goiania"
            )
        );

        request.setAttribute("computers", computers);
        request.getRequestDispatcher("computer/index.jsp").forward(request, response);
    }
}

我使用tomcat作为Web服务器,只是一个文本编辑器(Atom)来帮助我完成这个挑战(现在是stackoverflow)。我现在的问题是编译器没有找到我已经编译的类计算机,但没有成功修复这个错误。

共有2个答案

崔琦
2023-03-14

我错过了对Computer类的导入,并且在上面的示例中出现了语法错误。

package com.lcdss.compmng.controller;

import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lcdss.compmng.entity.Computer;

public class ComputerSV extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        ArrayList<Computer> computers = new ArrayList<>();

        computers.add(
            new Computer(
                1,
                "HP",
                "hostname",
                "Windows 10 Pro x64",
                "Intel I7 7700K 4.2 GHz",
                2048,
                8196,
                "Anapolis"
            )
        );

        computers.add(
            new Computer(
                2,
                "DELL",
                "hostname",
                "Windows 10 Home Basic x64",
                "Intel I7 7500U 2.5 GHz",
                512,
                4098,
                "Goiania"
            )
        );

        request.setAttribute("computers", computers);
        request.getRequestDispatcher("computer/index.jsp").forward(request, response);
    }
}

为了编译,我使用了命令javac-cp /opt/tomcat/webapps/compmng/WEB-INF/classes:/opt/tomcat/lib/servlet-api.jarComputerSV. java。第一个类路径(cp)通知编译器我的类在哪里以及包的名称是什么。

阎建中
2023-03-14

它和tomcat没有关系。这是一个正常的编译问题。在编译时间/阶段,当ArrayList

 类似资料:
  • 我有我所有目录的结构: 我正在尝试编译和执行ServerMain和ClientMain。以下编译工作: 我必须不在src中执行程序,而是在前一个目录中执行,因为在代码中有一个从cfg目录中的配置文件读取的函数。 我试图执行这个命令,但我有很多错误:ClassesNotFound或cfg文件路径中的错误(代码中是/cfg/server.cfg)或ServerMain未找到。 以下命令在图像中项目的s

  • 我有一个多项目gradle项目,结构如下。 从顶层“Project A”运行Gradle任务时,一切都正常工作 但是,当我尝试在子项目(如“subproject C”)上运行单个任务时,会出现以下错误。 失败:构建失败,但有一个异常 出了什么问题: 评估根项目“SubProject C”时出现问题。 在根项目“SubProject C”中找不到带有路径“: Shared”的项目。 我想我看到了问题

  • 简介 通过 Cocos Creator 主菜单中 文件->导入项目 的子菜单,可以导入其他编辑器中的项目。目前支持导入的编辑器项目有: Cocos Studio 项目(*.ccs 文件) Cocos Builder 项目(*.ccbproj 文件) 相应的菜单项如图: 操作步骤说明 导入其他编辑器项目的操作步骤如下: 点击相应的菜单,打开文件选择对话框。 选择对应扩展名的文件,即可开始导入。如图:

  • 编译 Java 项目 一个项目可以关联多个编译器。 java 项目关联的是 java 编译器。可以通过以下方式来查看项目关联的编译器: 在 Package Explorer 视图中鼠标右击项目并选择 Properties 在左侧的树形菜单中点击 Builders java编译器用于编译java项目。通过点 New 按钮我们可以让java项目关联 Ant builder 编译器。 java 编译器通

  • This tutorial describes the base compilation commands provided with OCaml. It is useful to learn these commands to understand OCaml's compilation model. However, eventually you will want to use a buil

  • 我知道这个问题已经在几个方面被问到,但希望澄清,因为我没有Linux测试,我会把项目发送给谁将使用Linux的人。 问题:有一个有几个库的Netbeans Java项目(请参见pic),我需要压缩并将整个项目发送给某人,并给他们在Linux下编译和打开它的指导。 我读过:Link1、Link2、Link3等等。