首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache java.lang.NoSuchMethodError

Apache java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2018-04-06 16:49:57
回答 4查看 12.6K关注 0票数 1

我的代码如下:

代码语言:javascript
复制
 import java.util.*;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.io.IOException;

 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.*;

 public class ExcelRead{

     public static void main(String[] args){
        String docName = "C:\\Users\\Name\\Desktop\\excelExample.xlsx";
        try{
            InputStream xlsxDoc = new FileInputStream(docName);
            XSSFWorkbook wb = new XSSFWorkbook(xlsxDoc);
            XSSFSheet sheet = wb.getSheetAt(0);
            System.out.println(sheet.getSheetName());          
        }
        catch(Exception e){  
            e.printStackTrace();
        }
     }
}

我得到的错误代码是:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoSuchMethodError: 
org.apache.poi.util.POILogger.log(ILjava/lang/Object;)V
at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:313)
at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:163)
at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:131)
at org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:559)
at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:112)
at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:83)
at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:128)
at org.apache.poi.openxml4j.opc.ZipPackagePart.<init>(ZipPackagePart.java:78)
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:243)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:673)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:274)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:258)
at AristocratProject_1.ExcelRead.main

我已经添加到netbeans库中的Apache的依赖项是:

代码语言:javascript
复制
poi-3.17.jar
poi-ooxml-3.11.jar
xmlbeans-2.6.0.jar

从这里开始,我几乎不知道该怎么做。有人能告诉我我的代码是否错了,或者我需要什么其他的依赖项吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-06 17:22:05

好的,正如rgettman解释的,我必须将poi-ooxml-3.11.jar更新为poi-ooxml-3.17.jar,这可以通过重新下载二进制源文件并提取.zip文件来完成。在更新了这两种方法之后,我得到了另一个错误,并通过添加公共集合4-4.1.jar和poi-ooxml 3.17.jar修复了这个错误。添加这些依赖项后,我的代码将运行。希望这对未来的任何人都有帮助。

票数 1
EN

Stack Overflow用户

发布于 2021-01-21 16:52:15

  1. 如果要使用poi jar和poi jar,请确保它们是相同的版本。
  2. 您也可以尝试poi jar而不需要poi
票数 1
EN

Stack Overflow用户

发布于 2022-02-15 14:48:35

这个问题必须由apache团队解决。无论如何,@Fancypants753 753中提到的快速解决方法是确保jars的版本相同。如果其中任何一个是不同的,肯定会出现这个问题。我最近偶然发现了这个问题。

在我的例子中,我不得不将评级从5.2.0降到4.1.2

之前,我运行这些依赖项。

代码语言:javascript
复制
 <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.4</version>
        </dependency>

但是现在,为了确保所有的版本都是相同的版本,我不得不将其降级到4.1.2,而且因为现在用于poi-ooxml的最新版本是4.1.2,所以我不能运行比其他版本更高的版本。

代码语言:javascript
复制
 <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.4</version>
        </dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49697610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档