簡體   English   中英

java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject 錯誤

[英]java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject Error

我收到以下錯誤

線程“main”中的異常 java.lang.NoClassDefFoundError:OrderBook.WriteToExcelSheet.CreateOutPutFile(WriteToExcelSheet.java:20) 處的 org/apache/xmlbeans/XmlObject OrderBook.MainMethod.main(MainMethod.java:71)

我在網上查找了此錯誤的原因,但找不到我得到它的原因。

我包含了以下 jar 個文件

poi-3.9-20121203.jar, 
poi-excelant-3.9-20121203.jar,
poi-examples-3.9-20121203.jar,
poi-ooxml-3.9-20121203.jar,
poi-ooxml-schemas-3.9-20121203.jar,
poi-scratchpad-3.9-20121203.jar

代碼:

public class WriteToExcelSheet {
    public static Map < Integer, Object[] > data = new TreeMap < Integer, Object[] > ();
    public static void CreateOutPutFile() {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("Orderbook Stats");
        //This data needs to be written (Object[])
        //Iterate over data and write to sheet
        Set < Integer > keyset = data.keySet()
        int rownum = 0;
        for (Integer key: keyset) {
            Row row = sheet.createRow(rownum++);
            Object[] objArr = data.get(key);
            int cellnum = 0;
            for (Object obj: objArr) {
                Cell cell = row.createCell(cellnum++);
                if (obj instanceof String) cell.setCellValue((String) obj);
                else if (obj instanceof Integer) cell.setCellValue((Integer) obj);
            }
        }
        try {
            //Write the workbook in file system
            System.out.println("OutPutStats.xlsx writing..............................");
            FileOutputStream out = new FileOutputStream(new File("FileLocation/o.xlxs"));
            workbook.write(out);
            out.close();
            System.out.println("OutPutStats.xlsx written successfully on disk.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}    

你必須再包括一個罐子。

xmlbeans-2.3.0.jar

添加這個並嘗試。

注意:僅 .xlsx 格式的文件需要它,而不僅僅是 .xls 格式的文件。

您必須包含另外兩個 jar 文件。

xmlbeans-2.3.0.jar 和 dom4j-1.6.1.jar 添加試試就行了。

注意:僅 .xlsx 格式的文件需要它,而不僅僅是 .xlt 格式的文件。

嘗試翻譯帶有 .xlsx 后綴的 Excel 文件時,您需要添加額外的 jar,xmlbeansxxx.jar。 xxxx為版本,如xmlbeans-2.3.0.jar

對於所有添加 xmlbeans-2.3.0.jar 但它不起作用的情況,您必須在添加 jar 后使用 HSSFWorkbook 而不是 XSSFWorkbook。例如;

    Workbook workbook = new HSSFWorkbook();
    Sheet listSheet = workbook.createSheet("Kişi Listesi");

    int rowIndex = 0;
    for (KayitParam kp : kayitList) {
        Row row = listSheet.createRow(rowIndex++);
        int cellIndex = 0;
        row.createCell(cellIndex++).setCellValue(kp.getAd());
        row.createCell(cellIndex++).setCellValue(kp.getSoyad());
        row.createCell(cellIndex++).setCellValue(kp.getEposta());
        row.createCell(cellIndex++).setCellValue(kp.getCinsiyet());
        row.createCell(cellIndex++).setCellValue(kp.getDogumtarihi());
        row.createCell(cellIndex++).setCellValue(kp.getTahsil());
    }

    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        workbook.write(baos);
        AMedia amedia = new AMedia("Kisiler.xls", "xls",
                "application/file", baos.toByteArray());
        Filedownload.save(amedia);
        baos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

您需要包含 xmlbeans-xxx.jar,如果您已經下載了 POI 二進制 zip,您將在 ooxml-lib 文件夾中獲得 xmlbeans-xxx.jar(例如:\\poi-3.11\\ooxml-lib)

此 jar 用於 XML 綁定,適用於 .xlsx 文件。

我遇到了類似的情況,所以我替換了所有外部 jar 文件( poi-bin-3.17-20170915 )並確保添加 lib 和ooxml-lib文件夾中存在的其他jar文件。

希望這可以幫助!!!:)

我正在使用 talend V7.3.1 並且我的 poi 版本為“4.1.0”,並且從依賴項列表中包含 xml-beans 並沒有解決我的問題(即:2.3.0 和 2.6.0)。

It was fixed by downloading the jar "xmlbeans-3.0.1.jar" and adding it to the project

在此處輸入圖片說明

如果以正確的方式執行此操作,則需要創建一個 maven 項目並將所有依賴項放入pom.xml文件中,maven 的依賴項您可以谷歌,例如: https://mvnrepository.com/artifact/org.apache.poi/點/5.0.0

如果要采用這種硬核方式,請下載 POI 庫二進制文件並添加所有文件夾(對於 POI 5.0.0)中的所有.jar文件,這是(輔助、ooxml-lib、lib)文件夾和根目錄。 就我而言,如果您不想弄清楚哪個庫與什么相關,它就可以工作。

像這樣的東西:

在此處輸入圖像描述

當在類路徑中找不到類時,會拋出 ClassNotFoundException。 添加如下jar(包含XmlObject接口的定義)即可解決問題

xmlbeans-x.y.z.jar

您可以通過以下鏈接下載最新的 xmlbeans jar 文件https://xmlbeans.apache.org/download/index.html

如果您正在使用 apache poi 庫,請確保在 lib 和 ooxml-lib 文件夾中添加 jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM