Хост-машина: Ubuntu 18.04 openjdk 10.0.2 2018-07-17
Я пытаюсь прочитать данные из листа Excel, используя Apache POI, но получаю NoClassDefFoundError.
Это мой код:
package readatafromexcel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadExcel {
public static void main(String[] args) throws Throwable {
// TODO Auto-generated method stub
try{
//create file object
File src = new File("/home/nisha/Downloads/files/First/refdata.xlsx");
//create file Input stream object
FileInputStream reader =new FileInputStream(src);
//create workbook object
XSSFWorkbook wb =new XSSFWorkbook(reader);
//create sheet
XSSFSheet sheet1=wb.getSheetAt(0);
//fetch data from excel
String rowData =sheet1.getRow(0).getCell(0).getStringCellValue();
//print value
System.out.println("data"+rowData);
}
catch (FileNotFoundException e)
{
}
}
}
Это трассировка стека:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/compress/utils/InputStreamStatistics
at org.apache.poi.openxml4j.util.ZipArchiveThresholdInputStream.<init>(ZipArchiveThresholdInputStream.java:62)
at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:180)
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:104)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:298)
at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:307)
at readatafromexcel.ReadExcel.main(ReadExcel.java:24)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.compress.utils.InputStreamStatistics
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
... 7 more
Ниже приведены библиотеки, связанные с проектом (с использованием Eclipse IDE):
![enter image description here](https://i.stack.imgur.com/jOCLd.png)
![enter image description here](https://i.stack.imgur.com/mfIvM.png)
EDIT
После изменения Java на 1.8 теперь я получаю эту ошибку:
Exception in thread "main" java.lang.IllegalArgumentException: InputStream of class class org.apache.commons.compress.archivers.zip.ZipArchiveInputStream is not implementing InputStreamStatistics.
at org.apache.poi.openxml4j.util.ZipArchiveThresholdInputStream.<init>(ZipArchiveThresholdInputStream.java:63)
at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:180)
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:104)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:298)
at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:307)
at readatafromexcel.ExcelReadData.main(ExcelReadData.java:24)