一、首先要正确的配置Java的环境变量(具体方法就不在阐述了,我的是JDK1.8)
二、我们安装GDAL是通过源码编译的方法来安装
步骤
1、提前安装编译时候要用到的依赖库,主要的依赖库有ant、geos、proj、openjdk、gcc、c++、swig(安装主要有两种方一种是用brew,另一种是直接去官网下载然后解压安装,则先把安装包解压,然后进入解压后的文件夹的根目录,依次执行如下三个命令:./configure,make,make install。一般如果缺少什么环境会在第一个命令执行完后给出报错信息,若没有提示错误,直接执行后两个命令即可。这里补充一点,make的时候等的太久了,使用make -j命令可以快很多,还是用Kernel来测试:用make: 40分16秒,用make -j4:23分16秒,用make -j8:22分59秒,当然你的CPU得支持)
2、安装gdal。解压,进入根目录,然后:
./configure --with-java=$JAVA_HOME
make -j8 && make install
错误解决:
可能会报错找不到proj之类的错误,加上--with-static-proj4=/usr/local(/usr/local是不是这个路径得看你实际的)
如果./configure --with-java=$JAVA_HOME之后报错缺少啥依赖就去安装下载,直到没有错误之后在执行make -j8 && make install
3、修改文件:gdal根目录/swig/java/java.opt,添加JAVA_HOME的值为java的根目录。
Java Stuff
JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home"
JAVADOC=$(JAVA_HOME)/bin/javadoc
JAVAC=$(JAVA_HOME)/bin/javac
JAVA=$(JAVA_HOME)/bin/java
JAR=$(JAVA_HOME)/bin/jar
JAVA_INCLUDE=-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
可能遇到的错误:
1、jni.h找不到,那就是JAVA_HOME路径的问题,安装gadl的时候一定要用
./configure --with-java=$JAVA_HOME
2、jni_md.h找不到,那就是java.opt文件错了,最后的linux要改为darwin
4、在路径:gdal根目录/swig/java中执行make -j8 && make install
5、最后make install之后会在/swig/java中生成很多个文件,直接找到libgdalalljni.dylib,libgdalalljni.28.dylib这两个库,然后拷贝到/Library/Java/Extensions目录下
6、有些文档说是libgdalalljni.dylib,libgdalalljni.28.dylib这两个库要拷贝到/usr/local/lib目录,目前我的没拷贝也是可以的
7、还有文章说是把.lo、.o、.la、*.a复制到自己方便的文件夹下,一般是$JAVA_HOME/jre/lib/amd64/server
然后在/etc/profile中添加
export LD_LIBRARY_PATH=.:$JAVA_HOME/jre/lib/amd64/server
改完这个文件后记得source /etc/profile
目前我没加也是没问题的
8、项目用maven配置
<dependencies>
<dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>3.2.1</version>
<scope>system</scope>
</dependency>
</dependencies>
9、大功告成