今天在公司git下来的新项目,启动时说没有gdal环境报错,
要么就是报 no gdalallini in java.library.path
要么就是报 can’t find dependent libraries
于是找了好久的教程,都是鱼龙混杂,各种办法都试了,都没有用,最后一点点琢磨出来了。
网上的那些让你往jre的bin中放东西,或者改环境变量这些,都不需要。
少走弯路,少改配置。
一、准备gdal环境
官网:https://www.gisinternals.com/release.php
题外话:国外的网站这一步可能连不上,大家想想办法,都知道的。
实在访问不了,我把网盘贴在下面了,只存了一个版本,根据需求下载32位和64位:
链接:https://pan.baidu.com/s/1bx0VtRl_E01OaxzpIj3mXw
提取码:azro
如果可以访问,打开官网之后会看到如下界面,根据自己系统下载32位或64位:

点进去之后,选第一个即可,一个几十M的包,很快就下完了

二、解压
解压出来是这样的

三、引用
打开路径
release-1928-x64-gdal-3-9-1-mapserver-8-2-0/bin/gdal/java
里面有个gdal的jar包

把gdal.jar包复制出来,放到项目文件夹中,作为项目lib包
main启动,static加载,但这时候你会发现,报错了。

四、导入dll文件(重要)
还是上一步的目录,把名字为gdalalljni.dll的文件复制出来

找到自己的java安装目录,我这里是 F:\java\bin

把gdalalljni.dll文件粘贴进去。

再次启动项目,这时候新错误出现了

(重要)然后,找到gdal解压目录下的bin目录
release-1928-x64-gdal-3-9-1-mapserver-8-2-0\bin
把所有的dll文件挑出来

全选,粘贴到jdk目录中的bin中

五、再次启动

这时候就已经加载成功了。
注:
- SpringBoot使用maven打jar包的时候,记得把gdal包打进去,像这样。

- mac系统可能和windows略有出入,但原理都是一样的,mac系统的动态库dll应该是so文件
- 线上环境的jdk操作也如此,记得看好系统是32位还是64位,下载对应的文件,步骤同windows

1429

被折叠的 条评论
为什么被折叠?



