2016-09-02 4 views
1

나는 이클립스 엑셀 스프레드 시트에서 시트 목록을 얻으려고 노력하고 있지만 자바를 실행하면 예외를 throw합니다.아파치 POI ClassNotFoundException

여기 코드입니다.

File myFile = new File("excel.xlsx"); 
    Workbook wb = null; 
    try { 
     wb = WorkbookFactory.create(myFile); 
    } catch (EncryptedDocumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (InvalidFormatException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    List<String> sheetNames = new ArrayList<String>(); 
    for (int i=0; i<wb.getNumberOfSheets(); i++) { 
     sheetNames.add(wb.getSheetName(i)); 
    } 
    System.out.println(sheetNames); 

여기에 로그가 있습니다.

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject 
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:293) 
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:252) 
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:231) 
    at com.cogentautomation.view.View.main(View.java:19) 
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject 
    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) 
    ... 4 more 

다음을 Eclipse java 빌드 경로에 라이브러리로 포함 시켰습니다.

이 는
  • 이를 JUnit의 log4j는
  • 내가 아는 포이

  • POI-OOXML
  • POI - 스크래치 패드는 솔루션
  • 평민 로깅 평민 - 코덱
    • 단순하지만 내 마음은 공허합니다. 나는 Maven을 사용하지 않는다.

  • 답변

    2

    예외 메시지로에서 종속성을 포함 할 수 있습니다 XML 빈스 dependency.You를 추가해야합니다, 당신은 XMLBeans 라이브러리가 필요합니다. Poi는 아마도 그것에 달려 있습니다.

    Gradle 또는 Maven과 같은 종속성 관리 도구를 사용하는 경우 자동으로 포함됩니다.