я получаю ClassNotFoundException, когда пытаюсь читать из файла excel

Когда я пытаюсь прочитать файл excel с помощью apace poi, я получаю исключение ClassNotFoundException, за которым следуют другие ошибки, и я импортировал все необходимые файлы jar в справочную библиотеку.

кстати я еще новичок в кодировании

вот код:

import java.io.*;
import java.io.File;
import java.io.FilterInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.*;
import org.apache.poi.*;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Test {

public static void main(String[] args) throws IOException  {
    // TODO Auto-generated method stub


FileInputStream F = new FileInputStream("Carbcounting.xlsx");

    XSSFWorkbook wb = new XSSFWorkbook(F);

    XSSFSheet sheet = wb.getSheetAt(0);

    FormulaEvaluator formulaEva = wb.getCreationHelper().createFormulaEvaluator();

    for(Row row : sheet){
        for(Cell cell : row){

            System.out.print(cell.getStringCellValue());


            }

        }
        System.out.println();

    }

}

и вот все ошибки, которые я получаю, когда пытаюсь запустить его:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap
    at project.Test.main(Test.java:28)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections4.ListValuedMap
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more

person Ali    schedule 11.02.2017    source источник
comment
Вы наверняка импортировали все классы, которые вам явно нужны, в свой класс Test. Но сообщение об ошибке сообщает вам, что Apache POI также нуждается в пакете org.apache.commons. У вас это тоже импортировано в ваш проект? Думаю, нет. И это причина для вашего CNFE.   -  person Lynx 242    schedule 11.02.2017


Ответы (1)


Вам нужно добавить файл commons-collections4-x.x.jar в путь сборки и повторить попытку. Он должен работать.

Получите его отсюда: https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.0

Кроме того, просто складываем:
Вы получаете эту ошибку (NoClassDefFoundError) в основном по двум причинам:

  1. Виртуальная машина Java не может найти определенный класс во время выполнения, который был доступен во время компиляции.

  2. Если класс присутствовал во время компиляции, но недоступен в пути к классам java во время выполнения.

person Manoj Kengudelu    schedule 11.02.2017