【问题标题】:Java - Trouble loading file NoClassDefFoundErrorJava - 无法加载文件 NoClassDefFoundError
【发布时间】:2015-07-01 19:28:14
【问题描述】:

已解决:我需要添加另一个文件夹中的另一个 jar 文件

我所有的代码都在下面。它来自this 网站。我已经阅读了多个加载 XSSF 文件的示例,但我仍然遇到同样的错误。我所有的导入都是正确的,但我唯一的猜测是我的文件路径。但这似乎是正确的,没有给我任何错误

package testcode;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;


import java.util.Iterator;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TestCode {

public static void main( String[] args ) throws IOException {
        InputStream ExcelFileToRead = new FileInputStream("C:/Users/[name]/Desktop/Book1.xlsx");
        XSSFWorkbook  wb = new XSSFWorkbook(ExcelFileToRead);

        XSSFWorkbook test = new XSSFWorkbook(); 

        XSSFSheet sheet = wb.getSheetAt(0);
        XSSFRow row; 
        XSSFCell cell;

        Iterator rows = sheet.rowIterator();

        while ( rows.hasNext() ) {
            row = ( XSSFRow ) rows.next();
            Iterator cells = row.cellIterator();
            while( cells.hasNext() ) {
                cell = ( XSSFCell ) cells.next();

                if ( cell.getCellType() == XSSFCell.CELL_TYPE_STRING ) {
                    System.out.print( cell.getStringCellValue() + " " );
                }
                else if( cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC ) {
                    System.out.print( cell.getNumericCellValue() + " " );
                }
                else {

                }
            }
            System.out.println();
        }
}

错误信息:

线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/xmlbeans/XmlException 在 testcode.TestCode.main(TestCode.java:20) 引起:java.lang.ClassNotFoundException:org.apache.xmlbeans.XmlException 在 java.net.URLClassLoader$1.run(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) ... 1 更多

【问题讨论】:

  • 请提供整个堆栈跟踪,NoClassDefFoundError 与文件路径无关
  • @Abhishek 抱歉,这是我的错。它让我失去了理智!已添加
  • 如果我冒险猜测,我会说您正在使用的库缺少一个依赖项。您可以很好地加载库的类,但是当您调用文件加载方法时,它会在类路径中搜索依赖项并且找不到。
  • 验证所有必需的 Java 类都包含在应用程序的类路径中。最常见的错误是在开始执行依赖于某些外部库的 Java 应用程序之前没有包含所有必要的类。

标签: java api xssf


【解决方案1】:

NoClassDefFoundError 。遇到此异常时,当您的代码依赖的类文件或 api 在编译时存在但在运行时找不到时。 请检查运行时可用的 jar 或比较运行时和编译依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2011-11-27
    • 2016-05-18
    • 1970-01-01
    • 2017-05-17
    • 2020-10-02
    相关资源
    最近更新 更多