1. 使用编译好的安装jdal
http://www.gisinternals.com/release.php
gdal-111-1800-x64-core.msi下载地址:http://download.gisinternals.com/sdk/downloads/release-1800-x64-gdal-1-11-3-mapserver-6-4-2/gdal-111-1800-x64-core.msi
2. 配置maven
pom.xml
<dependency> <groupId>org.gdal</groupId> <artifactId>gdal</artifactId> <version>1.11.2</version> </dependency>
3. 配置环境变量
GDAL_BIN=C:\Program Files\GDAL GDAL_DATA=C:\Program Files\GDAL\gdal-data GDAL_DRIVER=C:\Program Files\GDAL\gdalplugins
4. 问题
Nativelibraryloadfailed. java.lang.UnsatisfiedLinkError:noogrjniinjava.library.path Exceptioninthread"main"java.lang.UnsatisfiedLinkError:RegisterAll atorg.gdal.ogr.ogrJNI.RegisterAll(NativeMethod) atorg.gdal.ogr.ogr.RegisterAll(ogr.java:115) atcom.gdal.vector.ShapeFileWrite.main(ShapeFileWrite.java:20)
方法1、直接将dll文件放在java工程根目录下面。
GDAL Java demo编译成功。优点:思路简单、32为、64位dll可以很方便的切换。缺点:每次新建工程都需要拷贝这些dll,增加工程文件大小,操作繁琐。
方法2、设置系统环境变量指定dll路径,将其加入Path中
在操作系统中运行一个程序(命令)时,如果没有指定绝对路径,它会先去程序本身所在的路径下面去寻找可执行文件,当找不到这些文件的时候,会去环境变量Path下面去寻找需要的东西。所以我们只需要将这个GDAL dll的路径加入到Path里面就行了,
右键计算机——》属性——》高级系统设置——》环境变量——》新建系统变量:
新建两个系统变量GDAL32_DLL
变量名:GDAL32_DLL
变量值:C:\GDAL\release-1600-win32-dev\release-1600\bin;C:\GDAL\release-1600-win32-dev\release-1600\bin\gdal\java
名字可以自己定义,指定GDAL DLL路径位置,和GDAL java版编译出路径。
在Path前面增加(如果没有Path系统变量,则新建)"%GDAL32_DLL%;",即path变为
%GDAL32_DLL%;%JAVA_HOME%/。。。。。。
注意:将dll加入Path后,需要重启电脑,或者先注销后在进入windows系统,才会生效。