当前位置: 首页 > 知识库问答 >
问题:

如何解决'异常线程"main"java.lang.NoClassDefFoundError: org/apache/poi/ss/userModel/Row'

关学
2023-03-14

我现在面临的问题是,我想导入一个excel文件并将其传递给另一个类,如下所示:

package cal;

import java.util.Scanner;

public class CalendarMain {
public static void main(String[] args) {

    Scanner link = new Scanner(System.in);
    System.out.println("Please insert the raw file link: ");
    String excellink = link.nextLine();
    link.close();

    String[] excelLink = new String[] { excellink };
    ShiftSetting.main(excelLink);
   }
}

通过命令提示符编译并运行它没有问题,但当将原始文件链接粘贴到命令提示符并单击enter时,会出现以下错误:

C:\Users\User\eclipse-workspace\Calendar_v1\src>java cal.CalendarMain cal.ShiftSetting cal.PHNames
    Please insert the raw file link:
    C:\Users\User\Desktop\WORK\2019raw.xlsx
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row
            at cal.CalendarMain.main(CalendarMain.java:16)
    Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Row
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            ... 1 more

仅供参考,当我在Eclipse上运行它时,这个问题永远不会出现。但当我尝试在命令提示符下运行时,它会给我这个错误。第16行实际上是这一行:shiftseting。主(excelLink)

我还提供轮班设置。java文件

package cal;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ShiftSetting {
    public static void main(String[] excelLink) {
        ArrayList<String> shiftname = new ArrayList<String>();
        ArrayList<String> shiftcode = new ArrayList<String>();
        try {
            FileInputStream file = new FileInputStream(new File("C:\\Users\\User\\Desktop\\WORK\\shiftnameall.xlsx"));
            XSSFWorkbook wb = new XSSFWorkbook(file);
            XSSFSheet sheet = wb.getSheetAt(0);
            DataFormatter formatter = new DataFormatter();
            String cellValue = null;
            for (int rowNum = 0; rowNum < sheet.getLastRowNum() + 1; rowNum++) {
                Row r = sheet.getRow(rowNum);
                String val = null;
                for (int m = 0; m < r.getLastCellNum(); m = m + 2) {
                    Cell cell = r.getCell(m);
                    val = formatter.formatCellValue(cell);
                    shiftname.add(val);
                }
            }
            for (int rowNum = 0; rowNum < sheet.getLastRowNum() + 1; rowNum++) {
                Row r = sheet.getRow(rowNum);

                String val = null;
                for (int m = 1; m < r.getLastCellNum(); m++) {
                    Cell cell = r.getCell(m);
                    val = formatter.formatCellValue(cell);
                    shiftcode.add(val);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        /* PHDatesArray.main(excelLink, shiftname, shiftcode); */
    }
}

有人知道如何解决这个问题吗?


共有1个答案

闽承望
2023-03-14
匿名用户

我已经解决了这个问题。事实上,这与APACHE POI的版本或我的系统变量中的路径无关。这只是我命令提示符上的路径,我写错了。

我把我所有的. jar文件放在同一个文件夹包里面的文件夹里。

因此,我运行这样的命令来编译:

javac-cp jars/*;。*. java

然后为了运行它,我这样写

java-cp日历/jars/*;日历第一课的名字,日历。类别2的名称

 类似资料:
  • 问题内容: 我制作了一个小型应用程序,可以从excel(xls文件)中读取内容并将其内容显示到JTable中。在eclipse中一切正常,但是当我创建jar文件并尝试运行它时,出现以下问题: 我发现奇怪的是,问题出在行上,当在行之前调用Workbook和Sheet时,它没有任何麻烦(至少从我的观察中可以看出)。 我已经研究了很多,主要似乎是jar文件不在Class-Path中,但是打开jar和清单

  • 我正在使用ApachePOI读取一些Excel文件。我创建了一个控制台应用程序来完成这项工作,之后我尝试将代码集成到SpringMVCwebapp中(我知道没什么特别的)。我已将相同的Jar文件包含到我的类路径中,但每当我尝试运行代码时,都会出现以下错误: 我相信类Font是在编译时找到的,但不是在运行时。我很确定问题不在于ClassPath,但是我不知道如何解决这个问题。 编辑:当我用main方

  • 我制作了一个小应用程序,它从excel(xls文件)读取内容并将内容显示到JTable。eclipse中的一切都很好,但是当我创建jar文件并尝试运行它时,我遇到了以下问题: 我发现的奇怪的事情是,问题是行,当工作簿和工作表被称为行之前,并没有给任何麻烦(至少从我可以看到)。 我已经研究了很多,主要似乎是jar文件不在类路径中,但是打开jar和清单文件,我可以看到所有的jar都存在。 这就是我的p

  • 问题内容: 我正在尝试使用Eclipse在Maven项目中作为Java应用程序运行,并且遇到以下运行时错误。错误如下所示。 线程“主”中的异常java.lang.NoClassDefFoundError:com.wang.testMaven.App.main(App.java:16)上的org / apache / http / ConnectionReuseStrategy造成原因:java.l

  • 我使用maven来管理我的web项目依赖关系。我添加apache poi依赖到我的pom文件.它不显示错误时,符合.但当它运行,它将抛出运行时间异常在我的Main Application()类.而它给java.lang.NoClassDefFoundError: org/apache/poi/ss/userModel/Workbook 我有一门主要的应用课程。 } 下面是我的补充