写篇文章记录一下 关于java用gdal做坐标转换分享遇到了Caused by: java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.AllRegister()V这个错误 ,就是 gdal构建的的时候没有加载到gdal.jar.这个jar包需要在linux中进行编译和安装生成的 在这里需要注意win的gdal.jar和linux的gdal.jar不一样.下面是linux的的整个过程了.
二进制安装包我放在百度云了需要自取:链接:https://pan.baidu.com/s/1w9kOb2vsQemhvnhw6hS2SA?pwd=6xem
提取码:6xem
linuxGDAL环境安装
1.安装准备的环境:
名称 | 类型与版本 | 软件连接 |
---|---|---|
服务器 | linux-centos7.5 | |
jdk | java-1.8.0-openjdk-devel | |
ant | 1.9.14 | 详见资料目录 |
pcre | 8.43 | 详见资料目录 |
swig | 2.0.9 | 详见资料目录 |
proj | 6.0.0 | 详见资料目录 |
geos | 3.7.2 | 详见资料目录 |
gdal | 3.0.0 | 详见资料目录 |
2.安装流程
2.1创建文件夹将上述安装包上传到服务器
#1.创建存放资源的目录 mkdir /export/software/ -p #2.进入到该目录把资源上传进去 cd /export/software/
2.2安装gcc-c++环境
# 1.首先查看当前服务器中是否存在gcc环境 cd /usr/bin # 2.如果有gcc,g++,则存在,如果没有,用下面命令安装 yum install -y gcc-c++
2.3安装jdk
#1.更新系统 sudo yum update #2.下载 Java 8 软件包 sudo yum install java-1.8.0-openjdk-devel #3.验证 Java 安装是否成功 java -version #输出应该显示 Java 版本信息,确认安装成功。 #4.配置环境变量 vi /etc/profile #JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH #修改之后保存 #5.使环境变量生效 source /etc/profile
2.4安装ant
#1.下载解压即可 tar -zxvf apache-ant-1.9.14-bin.tar.gz -C /home/gdal/ #2.配置环境变量: vi /etc/profile #ANT_HOME export ANT_HOME=/home/gdal/apache-ant-1.9.14 export PATH=$PATH:$ANT_HOME/bin #修改之后保存 #3.使环境变量生效 source /etc/profile #4.验证 ant 安装是否成功 ant -version #输出应该显示 ant 版本信息,确认安装成功。 #5.返回资源目录 cd /export/software/
2.5安装pcre
#1.解压后进入根目录进行 tar -zxvf pcre-8.43.tar.gz -C /home/gdal/ #2.进入解压目录 cd /home/gdal/pcre-8.43 #3.编译(如果没有gcc-c++可能会编译失败) ./configure --enable-utf8 make make check make install #4.返回资源目录 cd /export/software/
2.6安装swig
# 1.解压后进入根目录进行 tar -zxvf swig-2.0.9.tar.gz -C /home/gdal/ #2.进入解压目录 cd /home/gdal/ #3.更改名称 mv swig-2.0.9 swig-2.0.9_Install #4.再次在swig中进行 cd swig-2.0.9_Install #5.编译安装 ./configure --prefix=/home/gdal/swig-2.0.9 make && make install #6.配置环境变量: vi /etc/profile #swig export SWIG_HOME=/home/gdal/swig-2.0.9 export PATH=$JAVA_HOME/bin:$SWIG_HOME/bin:$PATH #7.使环境变量生效 source /etc/profile #8.验证 swig 安装是否成功 swig -version #输出应该显示 swig 版本信息,确认安装成功。 #9.返回资源目录 cd /export/software/
2.7安装proj
# 1.如果出现 no package for sqlite3。执行下面的操作。(可以先执行安装一下,避免出现错误) yum install -y sqlite-devel # 2.解压 tar -zxvf proj-6.0.0.tar.gz -C /home/gdal/ #3.进入解压目录 cd /home/gdal/proj-6.0.0 #4.编译安装 ./configure make && make install #5.返回资源目录 cd /export/software/
2.8安装geos
#1.安装.bz2 格式的解压软件 yum -y install bzip2 #2.解压 tar -jxvf geos-3.7.2.tar.bz2 -C /home/gdal/ #3.进入解压目录 cd /home/gdal/geos-3.7.2 #4.编译安装 ./configure make && make install #5.返回资源目录 cd /export/software/
2.9安装gdal
#1. 5步骤和6步骤均是gdal本身依赖库,所以在安装gdal之前需要配置动态库让gdal能够找到。 cd /etc/ld.so.conf.d/ touch local.conf echo "/usr/local/lib" > local.conf #2.过ldconfig -v可以查看动态库连接信息: ldconfig -v #3.信息如下(类似这种的): /usr/local/lib: libgdalalljni.so.20 -> libgdalalljni.so libgdal.so.20 -> libgdal.so.20.5.1 libgeos_c.so.1 -> libgeos_c.so.1.11.1 libgeos-3.7.1.so -> libgeos.so libproj.so.15 -> libproj.so.15.0.0 libpcrecpp.so.0 -> libpcrecpp.so.0.0.1 libpcreposix.so.0 -> libpcreposix.so.0.0.6 libpcre.so.1 -> libpcre.so.1.2.11 #4.解压 tar -zxvf gdal-3.0.0.tar.gz -C /home/gdal/ #5.进入解压目录 cd /home/gdal/gdal-3.0.0 #6.编译 ./configure --with-static-proj4=/export/servers/gdal/proj-6.0.0 --with-java=$JAVA_HOME # 上面步骤如果执行完在最后的信息中如果有(有就yes没有也没关系) GEOS support = yes字样 #7.安装(时间可能会比较长) make && make install #8.gdal进行java的转换需要修改swig对应的文件 #修改文件:gdal根目录/swig/java/java.opt,添加JAVA_HOME的值为java的根目录。 vi /home/gdal/gdal-3.0.0/swig/java/java.opt 将 JAVA_HOME的环境路径添加到文件最后 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk #9.获取gdal.jar # 在路径:gdal根目录/swig/java中执行make && make install cd /home/gdal/gdal-3.0.0/swig/java make && make install #10.把gdal根目录/swig/java中生成的gdal.jar文件复制到$JAVA_HOME/jre/lib/ext下 cp gdal.jar /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/ext/ #11./usr/lib/jvm/java-1.8.0-openjdk cp *.so *.lo *.o *.la *.a /home/console/jdk1.8.0_111/jre/lib/amd64/server/ #12.然后在/etc/profile中添加GDAL环境变量 vi /etc/profile #GDAL环境变量 export LD_LIBRARY_PATH=.:$JAVA_HOME/jre/lib/amd64/server #13.使环境变量生效 source /etc/profile #14.将依赖的动态库和静态库添加到LD_LIBRARY_PATH环境变量中去。 vim ~/.bashrc #GDAL变量 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib #13.使环境变量生效 source ~/.bashrc