未知包,基本错误

时间:2018-05-02 08:05:07

标签: jsp java-ee package cannot-find-symbol

这似乎是一个非常简单的问题,但我无法得到它。 我试图用Java EE,JSP和tomcat计算机化存储/库存(顺便说一句,我是法语,对于语言错误提前抱歉)

我在这里尝试做什么:

我有一个Excel文件(.xls),它保存数据库的角色。 我阅读.xls文件并为每一行定义一个对象(" Outil"通过翻译它' sa"工具"),你可以在" CommandeOutils.java&中看到#34; (" / WEB-INF /类/ PAC / CMD&#34)。

package pac.cmd;

import javax.servlet.http.HttpServletRequest;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.*;
import pac.bdd.beans.Outil;

/**CommandeOutils.java*/
public class CommandeOutils implements Commande
{
private final String next;

private static FileOutputStream fos;
private static Row              row;
private static Cell             cell;
public static Outil[]           outil;

public CommandeOutils(String next) {
    this.next = next;
}

public String execute(HttpServletRequest req) throws Exception
{
    FileInputStream fis = new FileInputStream("C:\\Users\\lomoc\\Desktop\\INVENTAIRE_NOUVEAU_OUTILLAGE.xls");
    Workbook wb = WorkbookFactory.create(fis);
    Sheet sh = wb.getSheet("listing");
    int noOfRows = sh.getLastRowNum();
    for (int i = 1; i < noOfRows; i++)
    {
        if (sh.getRow(i) == null)
        {
            break;
        }
        outil[i] = new Outil(sh.getRow(i).getCell(0).getStringCellValue(), (sh.getRow(i).getCell(1).getStringCellValue()),
                sh.getRow(i).getCell(2).getStringCellValue(), sh.getRow(i).getCell(3).getStringCellValue(),
                sh.getRow(i).getCell(4).getStringCellValue(), sh.getRow(i).getCell(5).getDateCellValue(),
                sh.getRow(i).getCell(6).getDateCellValue(), sh.getRow(i).getCell(7).getBooleanCellValue(),
                sh.getRow(i).getCell(8).getBooleanCellValue(), sh.getRow(i).getCell(9).getDateCellValue(),
                sh.getRow(i).getCell(10).getDateCellValue(), sh.getRow(i).getCell(11).getStringCellValue(),
                sh.getRow(i).getCell(12).getStringCellValue(), sh.getRow(i).getCell(13).getStringCellValue(),
                sh.getRow(i).getCell(14).getStringCellValue(), sh.getRow(i).getCell(15).getDateCellValue(),
                sh.getRow(i).getCell(16).getBooleanCellValue(), sh.getRow(i).getCell(17).getBooleanCellValue());
    }

    req.setCharacterEncoding("UTF-8");
    req.getServletContext().getRequestDispatcher( "/WEB-INF/outils.jsp" );
    return next;
}

}

我的&#34; Outil&#34;对象在&#34; Outil&#34;中定义。 class(&#34; / WEB-INF / classes / pac / bdd / beans&#34;)。

package pac.bdd.beans;

import java.util.Date;

public class Outil
{
    private String  designation;
    private String  numInterne;
    private String  numSerie;
    private String  marque;
    private String  classement;
    private Date    dateAchat;
    private Date    dateFinDeVie;
    private boolean verifInterne;
    private boolean verifExterne;
    private Date    derniereVerification;
    private Date    prochaineVerification;
    private String  observation;
    private String  utilisateur;
    private String  dateSortie;
    private String  utilisateurPrecedent;
    private Date    dateRetour;
    private boolean conforme;
    private boolean nonConforme;

    public Outil(String designation, String numInterne, String numSerie, String marque,
                 String classement, Date dateAchat, Date dateFinDeVie, boolean verifInterne,
                 boolean verifExterne, Date derniereVerification, Date prochaineVerification,
                 String observation, String utilisateur, String dateSortie, String utilisateurPrecedent,
                 Date dateRetour, boolean conforme, boolean nonConforme)
    {
        this.designation = designation;
        this.numInterne = numInterne;
        this.numSerie = numSerie;
        this.marque = marque;
        this.classement = classement;
        this.dateAchat = dateAchat;
        this.dateFinDeVie = dateFinDeVie;
        this.verifInterne = verifInterne;
        this.verifExterne = verifExterne;
        this.derniereVerification = derniereVerification;
        this.prochaineVerification = prochaineVerification;
        this.observation = observation;
        this.utilisateur = utilisateur;
        this.dateSortie = dateSortie;
        this.utilisateurPrecedent = utilisateurPrecedent;
        this.dateRetour = dateRetour;
        this.conforme = conforme;
        this.nonConforme = nonConforme;
    }

    /*Hidden Getters & Setters*/
}

在&#34; outils.jsp&#34;中,我只是在一个表中打印for (int i = 0; i < CommandeOutils.outil.length; i++),每个示例包含一个元素out.println("<li>" + CommandeOutils.outil[i].getDesignation() + "</li>");

我手动编译,(如果我使用Intellij Idea重新编译,结果相同),我得到了这个,我已经有关于这个问题的红色主题,我尝试了很多东西而且没有弄明白,我不知道。知道它是编译问题,包问题,文件夹树,导入......

    C:\Users\lomoc\Cours\S4\JSP\webapps\V4_2\WEB-INF>javac classes\pac\cmd\*.java
classes\pac\cmd\CommandeOutils.java:9: error: package pac.bdd.beans does not exist
import pac.bdd.beans.Outil;
^
classes\pac\cmd\CommandeOutils.java:19: error: cannot find symbol
public static Outil[] outil;
^
symbol:   class Outil
location: class CommandeOutils
classes\pac\cmd\CommandeOutils.java:37: error: cannot find symbol
outil[i] = new Outil(sh.getRow(i).getCell(0).getStringCellValue(),
(sh.getRow(i).getCell(1).getStringCellValue()),
^
symbol:   class Outil
location: class CommandeOutils
3 errors

先谢谢

1 个答案:

答案 0 :(得分:0)

我可以看到你只编译classes\pac\cmd\*.java文件夹中的java文件,这只会编译文件而不会编译java文件pac\bdd\beans\位置。

你需要先编译java文件pac\bdd\beans\位置,因为你的类依赖于另一个类,这个包稍后会尝试编译classes\pac\cmd\位置的java文件。