【发布时间】: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 应用程序之前没有包含所有必要的类。