建议gdal用3.5.3前的版本,因为目前网上大部分文章都是适用这个版本之前的编译方法
一、gdal部署
1)安装gcc
通过系统包管理器安装
sudo apt install gcc
gcc --version
2)安装g++
通过系统包管理器安装
sudo apt install g++
g++ --version
3)安装Ant
通过系统包管理器安装
sudo apt-get install ant
ant -version
4)安装pcre
通过系统包管理器安装
sudo apt-get install libpcre3 libpcre3-dev
pcre-config --version
5)安装swig
通过系统包管理器安装
sudo apt-get install swig
swig -version
6)安装proj
通过系统包管理器安装
sudo apt-get install libproj-dev
proj --version
7)安装geos
通过系统包管理器安装
sudo apt-get install libgeos-dev
geos-config --version
8)安装gdal
GDAL:解压,配置 并编译 GDAL
tar -zxvf gdal-3.5.3.tar.gz
cd gdal-3.5.3/
./configure --prefix=/data/gdal
make
make install
9)配置gdal动态链接库
10)配置环境变量
vi /etc/profile(/etc/profile只能root用户编辑,设置的环境变量其他用户都生效)
新增:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/gdal/lib
source /etc/profile
检测gdal是否编译成功
gdalinfo -version
二、java程序jni调用
1)编辑解压后目录 vi gdal-3.5.3/swig/java/java.opt 配置 JAVA_HOME(当前系统jdk路径):
点击查看代码
#java stuff
#java_home = "c:\program files\java\jdk1.6.0_16"
#java_home = /usr/lib/jvm/java-6-openjdk/
#java_home = /usr/lib/jvm/java-7-openjdk-amd64/
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/linux
2)编译:
cd gdal-3.2.0/swig/java/
make
3)路径下会生成jar包,把jar包copy到自己项目的libs文件夹下
点击查看代码
<dependency><groupId>org.gdal</groupId><artifactId>gdal</artifactId><version>3.5.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/libs/gdal.jar</systemPath></dependency>
同时把路径下的libgdalalljni.so文件拷贝到/data/gdal/lib目录下(此目录是gdal的库)
服务启动命令,添加-Djava.library.path=/data/gdal/lib,主动指向gdal库,程序jvm就可通过libgdaljni.so调用jni
nohup java -Djava.library.path=/data/gdal/lib -jar -Xmx2048M wrjsr.jar > $LOG_FILE 2>&1 &
GDAL库的默认路径
gdal运行时执行程序路径如下:/data/gdal/bin/gdalinfo
gdal动态库静态库文件路径:/data/gdal/lib/libgdal.a ----------/data/gdal/lib/libgdal.so
gdal头文件路径:/data/gdal/include/gdal/gdal_priv.h
gdal Java接口文件路径:/data/gdal/lib/libgdaljni.so