Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
写入Excel文件时获取java.lang.NoClassDefFoundError错误_Java_Apache Poi - Fatal编程技术网

写入Excel文件时获取java.lang.NoClassDefFoundError错误

写入Excel文件时获取java.lang.NoClassDefFoundError错误,java,apache-poi,Java,Apache Poi,我将开发一个工作流程,需要从Oracle数据库中获取一些数据,并将结果集写入Excel文件。在开始之前,我想做一些测试。但是,我得到了以下运行时异常java.lang.NoClassDefFoundError。详情见下文。我知道我错过了一些非常愚蠢的事情,但我正在努力寻找答案。我感谢你的帮助 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMa

我将开发一个工作流程,需要从Oracle数据库中获取一些数据,并将结果集写入Excel文件。在开始之前,我想做一些测试。但是,我得到了以下运行时异常java.lang.NoClassDefFoundError。详情见下文。我知道我错过了一些非常愚蠢的事情,但我正在努力寻找答案。我感谢你的帮助

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap
    at DatabaseConnPkg.DatabaseConnClass.main(DatabaseConnClass.java:32)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections4.ListValuedMap
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
C:\Users\Erfan\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 3 seconds)
这些是我正在使用的外部罐子

poi-4.1.2.jar

poi-ooxml-4.1.2.jar

这就是我正在使用的代码

Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    ResultSetMetaData resultSetMetaData = null;

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","hr","hr");
        String sql = "select * from countries";
        preparedStatement = connection.prepareStatement(sql);
        resultSet = preparedStatement.executeQuery();
        resultSetMetaData = resultSet.getMetaData();
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet spreadSheet = workbook.createSheet();
        XSSFRow row = spreadSheet.createRow(1);
        XSSFCell cell;

        for(int i=0; i<resultSetMetaData.getColumnCount(); i++) {
            cell = row.createCell(i);
            cell.setCellValue(resultSetMetaData.getColumnName(i));
        }

        while(resultSet.next()) {
            row = spreadSheet.createRow(1);
            cell = row.createCell(1);
            cell.setCellValue(resultSet.getString(1));
            cell = row.createCell(2);
            cell.setCellValue(resultSet.getString(2));
            cell = row.createCell(3);
            cell.setCellValue(resultSet.getString(3));

        }

        FileOutputStream fileOutputStream = new FileOutputStream(new File(FILE));
        workbook.write(fileOutputStream);
        fileOutputStream.close();
        System.out.println("exceldatabase.xlsx written successfully");

        //System.out.println(resultSetMetaData.getColumnName(1) + "\t" + resultSetMetaData.getColumnName(2) + "\t" + resultSetMetaData.getColumnName(3));

        /*
        while(resultSet.next()) {
            System.out.println(resultSet.getString(1) + "\t\t" + resultSet.getString(2) + "\t\t" + resultSet.getString(3));
        }
        */

        connection.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
Connection=null;
PreparedStatement PreparedStatement=null;
ResultSet ResultSet=null;
ResultSetMetaData ResultSetMetaData=null;
试一试{
类forName(“oracle.jdbc.driver.OracleDriver”);
connection=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”、“hr”、“hr”);
String sql=“选择*来自国家”;
preparedStatement=connection.prepareStatement(sql);
resultSet=preparedStatement.executeQuery();
resultSetMetaData=resultSet.getMetaData();
XSSFWorkbook工作簿=新XSSFWorkbook();
XSSFSheet电子表格=工作簿.createSheet();
XSSFRow row=电子表格.createRow(1);
XSSFCell细胞;

对于(int i=0;i您似乎缺少commons-collections4依赖项,您可以从

中获得它。您似乎缺少commons-collections4依赖项,您可以从

中获得它。我也这么想,但我没有使用任何需要该依赖项的集合类型类。注意:我也尝试过依赖关系和结果是一样的,因为poi依赖于它,你可能没有直接使用它,但poi在内部使用它,如果你转到这个url并转到编译依赖关系部分,你可以看到poi的依赖关系经过进一步挖掘,我终于找到了问题。似乎缺少一个或两个依赖关系。谢谢为了让它发光:)网站上Apache POI依赖项的完整列表我也这么想,但我没有使用任何需要依赖项的集合类型类。注意:我也尝试过使用该依赖项,结果是相同的,因为POI依赖于它,您可能不会直接使用它,但POI正在内部使用它,如果您你转到这个url并转到编译依赖项部分,你可以看到POI的依赖项经过进一步的挖掘,我终于找到了问题。它似乎缺少了一个或两个依赖项。感谢你解释它:)网站上ApachePOI依赖项的完整列表您应该使用依赖项管理工具(如Maven或Gradle)为您解决此问题,否则您应该使用依赖项管理工具(如Maven或Gradle)为您解决此问题,否则