2016-10-12 4 views
0

gdal api (java)로 geotiff 파일을로드하려고합니다. 여기에 내 테스트 코드가있다.파일을 열 때 오류가 발생했습니다.

public class App 
{ 
    public static void main(String[] args) 
    { 
     gdal.AllRegister(); 
     Dataset dataset = gdal.Open("output.tif"); 
    } 
} 

는하지만 난 내가 받는다는 프로젝트를 사용하고 오류

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.Dataset_SWIGUpcast(J)J 
at org.gdal.gdal.gdalJNI.Dataset_SWIGUpcast(Native Method) 
at org.gdal.gdal.Dataset.<init>(Dataset.java:20) 
at org.gdal.gdal.gdal.Open(gdal.java:585) 
at org.gdaltest.projection.App.main(App.java:18) 

을 가지고, 그래서 내가 GDAL 의존성

<dependency> 
    <groupId>org.gdal</groupId> 
    <artifactId>gdal</artifactId> 
    <version>2.1.0</version> 
</dependency> 

나는 윈도우 10을 사용하고 설치 GDAL 2.1.0을 추가했다. 이미 환경 변수 GDAL_DATA와 Gdal 디렉토리를 경로에 설정했습니다.

내가 뭔가를 잃어버린거야?

답변

0

두려워 진 UnsatisfiedLinkErrors는 네이티브 라이브러리를 처리해야하는 경우 매우 자주 발생하는 문제입니다.

Java가 기본 라이브러리를 찾을 수 있도록 일반적으로 java.library.path VM 매개 변수를 설정해야합니다.

See an example here

Another gdal related unsatisfied link error issue here

+0

나는 실행 가능하지 않다 –

+0

ogr.RegisterAll(), gdal.AllRegister(), gdal.VersionInfo()를 실행해도 문제가 없습니다. 하지만 난 여전히 같은 오류가 gdal.open ("") 메서드를 사용하여 –

1

나는 문제를 해결. 저장소 maven (C : \ Users \ Myuser.m2 \ repository \ org \ gdal \ gdal \ 2.1.0)에있는 jar 파일을 gdal 폴더 (C : \ Program Files \ GDAL)에있는 jar 파일로 바꿨습니다. 그리고 이제는 효과가 있습니다.

+0

나는 C : \ Program Files \ GDAL \ java에 jar 파일을 의미 –

관련 문제