版权声明:本文为博主原创文章,转载请注明原文出处!
写作时间:2020年4月9日下午
macOS下GDAL Java开发环境搭建
今天在笔记本(macOS平台)上折腾了一下如何搭建GDAL的Java开发环境。虽然GDAL的Python接口更好用,但是有时候需要协同使用一些Java库的时候,也必须使用Java版本的GDAL。
在macOS上安装GDAL一般有三种方式:
- 使用HomeBrew
- 使用Kyng-Chaos提供的编译好的二进制包(Framework)
- 从源码编译
由于前两种方式不自带有Java相关的接口,所以这里选择从源码编译。
GDAL源码编译安装
首先,下载GDAL源码,可以从GitHub上下载,也可以从GDAL官网下载。
我这里从官网下载了最新的2.4.4版本(3.X版本也发布了,但是还是先用稳定一点的吧)的源码进行编译安装。GDAL依赖的库都可以使用HomeBrew安装,我的方法是直接使用Brew安装GDAL,然后再卸载掉GDAL,这样GDAL依赖的第三方库都就自动安装了。
此外,还需要系统中安装了Java JDK和SWIG以及Ant编译工具。
下面进行GDAL源码编译并安装到/usr/local
目录中。注意配置系统中Java的路径,我这里使用的是JDK11。
1 | cd gdal-2.4.4 |
然后接下来我们编译Java接口需要的相关文件。make install
命令会将动态链接库 libgdalalljni.20.dylib
和libgdalalljni.dylib
拷贝到/usr/local/lib
目录中。
1 | cd swig/java |
make
命令会生成我们需要的gdal.jar
包,是我们做Java开发需要的依赖包,必须添加到工程中。
我以为这样就可以了,但是当我在工程中调用GDAL的时候,提示找不到Native Library,然后我就把 libgdalalljni.20.dylib
和libgdalalljni.dylib
又拷贝到了/Library/Java/Extensions
目录中,问题才得以解决。
Maven安装本地JAR
我习惯使用Maven管理依赖,但是Maven中央仓库中没有提供GDAL 2.4.4版本的JAR包。所以需要把刚才生成的gdal.jar
文件安装到本地Maven仓库中,这样才能在Maven工程中使用。
使用如下命令进行安装以后,我们就可以在工程中开心的使用了!
1 | mvn install:install-file -Dfile=/Users/TheOneGIS/Development/gdal-2.4.4/swig/java/gdal.jar -DgroupId=org.gdal -DartifactId=gdal -Dversion=2.4.4 -Dpackaging=jar |
使用Java版GDAL示例
这里使用Better Java(Kotlin)语言进行一个简单的Shapefile文件读取的示例。首先,新建Maven Kotlin工程;然后在POM文件中添加GDAL依赖,最后书写我们的HelloWorld示例。
1 | <dependency> |
示例代码如下:
1 | package cn.demo |