2014-09-29 1 views
0
를 지정하지 않은

AnyLogic 7 : 엑셀 액세스 라이브러리 (아파치 POI)가AnyLogic 7 : 엑셀 액세스 라이브러리 (아파치 POI)은

나는 AnyLogic ExcelFile 클래스를 사용하려고 해요 지정하지만 AnyLogic 수 있음을 표시하지 않습니다 필요한 Apache POI 라이브러리를 찾을 수 없습니다 :

Error during model startup: 
Excel access library (Apache POI) is not specified (or is specified incorrectly) in the classpath 
Caused by: org/apache/poi/openxml4j/exceptions/InvalidFormatException 
Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException 
java.lang.RuntimeException: Excel access library (Apache POI) is not specified (or is specified incorrectly) in the classpath 
    at com.xj.anylogic.engine.Engine.a(Unknown Source) 
    at com.xj.anylogic.engine.Engine.start(Unknown Source) 
    at com.xj.anylogic.engine.ExperimentSimulation.b(Unknown Source) 
    at com.xj.anylogic.engine.ExperimentSimulation.run(Unknown Source) 
    at generic_agent_based_model_with_births_and_deaths.Simulation.executeShapeControlAction(Simulation.java:107) 
Caused by: java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException 
    at generic_agent_based_model_with_births_and_deaths.ExcelDataSource.onStartup(ExcelDataSource.java:668) 
    at generic_agent_based_model_with_births_and_deaths.ExcelDataSource.start(ExcelDataSource.java:652) 
    at generic_agent_based_model_with_births_and_deaths.Main.start(Main.java:1046) 
    ... 4 more 
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions.InvalidFormatException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    ... 7 more 

어떻게 수정합니까?

일부 노트 : 나는 모델을하고 있어요

  1. 는 처음에 다른 사람에 의해 개발했다. 모델이 처음 AnyLogic 6.9 용으로 제작되었다고 가정하고 있지만 AnyLogic 7.0.3을 사용하고 있습니다.
  2. AnyLogic은 POI 라이브러리를 자동으로 가져 오기로되어 있다고 가정합니다. 그 이유는 무엇이 잘못 되었습니까?
  3. 혼란을 피하기 위해 ExcelDataSource은 사용 사례를 위해 ExcelFile을 단순화하기 위해 만든 래퍼 클래스입니다.

미리 감사드립니다.

+1

클래스 패스에 모든 Apache POI jar가 있고 응용 프로그램에서 사용할 수 있는지 확인 했습니까? – Gagravarr

+0

AnyLogic에서 가져온 특정 버전이 있으므로 일반 POI가 작동하지 않습니다. 타티아나의 대답을보십시오. :) –

답변

2

AnyLogic은 Excel 스프레드 시트 작업에 Apache POI 라이브러리를 사용합니다. 그러나 기본적으로 불필요한 것으로 비활성화되어 있습니다. 연결 팔레트에서 Excel File 요소를 삭제하여 Apache POI 메소드를 사용할 수 있도록해야합니다. 다른 방법 - 모델 종속성 목록에 라이브러리를 추가하십시오 (모델 특성보기의 종속성 섹션 참조).

+0

미래에 이것을 읽는 모든 사람들에게 : 당신은 단순히 * ExcelFile 클래스를 사용할 수 없습니다. 팔레트에서 ExcelFile 요소를 작업 영역으로 드래그해야합니다. –

+0

모르도르로 단순히 'ExcelFile'하지 않습니다 :-) –