'java.library.path'에 해당되는 글 1

  1. 2010.01.01 JCo 사용기 2 2

JCo 사용기 2

Windows 2008 환경에서 JCo를 이용하려고 하는데 에러가 발생한다.
java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files (x86)\Java\jdk1.6.0_17\bin;.;C:\Windows\system32;...C:\Windows\System32\sapjcorfc.dll]
        at com.sap.mw.jco.JCO.<clinit>(JCO.java:738)


 JCo는 운영체제에 맞지 않는 버전을 사용하는 경우에도 위와 같은 에러가 발생한다.
 DLL을 로드하지 못해서 그런거 같기도 하다.

맞는 라이브러리를 구해서 다시 설치했음.
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

system32/ 아래에 DLL이 존재하고 이 디렉토리가 PATH에 설정되어 있는데도 DLL를 찾지 못함.
(권한이 없거나 해서 DLL을 로드하지 못한게 아닌가 싶다.)

별도의 디렉토리에 DLL을 넣고 JVM옵션에 java.library.path를 주거나 PATH에 이 디렉토리를 추가한 뒤 실행하면 된다.
(문서에는 jar파일과 DLL을 같은 곳에 두라고도 한다.)

- JCo 3 에서는 패키지나 사용법이 많이 달라졌다.