提问人:Sam 提问时间:11/2/2023 最后编辑:Sam 更新时间:11/2/2023 访问量:55
如何修复一个简单的Eclipse Java项目中添加的外部JAR的类的NoClassDefFoundError?
How to fix a NoClassDefFoundError for a class from an added External JAR in a simple Eclipse Java Project?
问:
我收到一个错误,我不明白 Apache POI 依赖项。
我创建了一个简单的 Java 项目,并在 Ecplise 控制台中运行。我做了一个用于读取 Excel 文件的 Java 类:
package Main;
import java.io.FileInputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ReadWriteExcel {
public String ReadExcel(String SheetName, int rNum, int cNum) {
String data = "";
try {
FileInputStream file = new FileInputStream("C:\\tmp\\test.xlsx");
Workbook wb = WorkbookFactory.create(file);
Sheet s = wb.getSheet(SheetName);
Row r = s.getRow(rNum);
Cell c = r.getCell(cNum);
data = c.getStringCellValue();
}catch(Exception e){
System.out.println("ReadExcel catch block");
e.printStackTrace();
}
return data;
}
}
当我运行我的主类时,它会抛出异常。它说找不到 Apache POI 类。 这是我的 MainClass :
package Main;
public class MainClass {
public static void main(String[] args) {
ReadWriteExcel obj = new ReadWriteExcel();
String str = obj.ReadExcel("PARAM", 0, 0);
System.out.println(str);
}
}
控制台正在编写以下消息:
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/poi/ss/usermodel/WorkbookFactory
at Main.ReadWriteExcel.ReadExcel(ReadWriteExcel.java:19)
at Main.MainClass.main(MainClass.java:8)
Caused by: java.lang.ClassNotFoundException:
org.apache.poi.ss.usermodel.WorkbookFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 2 more
我想我以我应该的方式添加了包含此类的 jar。我右键单击我的项目>配置构建路径>添加外部 JAR:
罐子的名字是我
在那里下载的:https://mvnrepository.com/artifact/org.apache.poi/poi/5.2.4poi-5.2.4.jar
答: 暂无答案
评论