java11

idea2022.1

Maven版本:3.8.6
GDAL版本:3.5.0

1.下载安装

要使用GDAL首先去网站下载(可以直接下msi)

网址:GISInternals Support Site

java MSI java msi安装程序_java MSI

我选择了最新一版的64位的

java MSI java msi安装程序_java MSI_02

选择这个msi(记录下老电脑放置安装包的位置F:\Download\ChromeDownload) 

启动msi开始安装,一路默认、next即可,它只能按到C盘 C:\Program Files\GDAL

2.配置环境

java MSI java msi安装程序_System_03

GDALShell.bat 右键管理员身份运行(这个文件就是用来配置环境变量的),若运行不成功,则按照以下步骤:

Windows键 + X,选择 Windos PowerSell(管理员)运行Windos PowerSell。

java MSI java msi安装程序_intellij-idea_04

在Shell里输入以下命令:

cd 'C:\Program Files\GDAL'

进入安装目录,

GDALShell 

运行批处理文件,gdalinfo测试配置是否成功。

java MSI java msi安装程序_System_05

.\,即.\GDALShell才能成功。最后一句gdalinfo也同理,需要写 .\gdalinfo

        成功后,可以不再path里添加变量,直接将GDAL里的dll粘贴到jdk的bin下(因为jdk的环境变量已经设好了),具体步骤如下:

        找到GDAL安装路径,并将 C:\Program Files\GDAL 下面的dll文件进行复制。到自己安装JAVA的路径下,找jdk含有ddl文件的bin目录,将复制好的dll文件复制进来,有时gdalalljni.dll会在 C:\Program Files\GDAL\java 目录下 要记得一起复制过去。具体方法见下图:

java MSI java msi安装程序_java MSI_06

 复制上图中路径下的所有dll

粘贴到下图路径下的bin里(F:\ProgramData\Java\jdk-11.0.15.1\bin)

java MSI java msi安装程序_intellij-idea_07

 C:\Program Files\GDAL\java 目录下的 gdal.jar 需要加载到项目的project structure的Library里

java MSI java msi安装程序_intellij-idea_08

java MSI java msi安装程序_java_09

         

        最后,在java工程中添加gdal的依赖(选择合适的module下的pom.xml)

<dependency>
            <groupId>org.gdal</groupId>
            <artifactId>gdal</artifactId>
            <version>3.5.0</version>
        </dependency>

 3.运行测试GDAL是否成功配置好

        新建一个 GDALTestApplication 类,读取一个tif文件,用来测试,

java MSI java msi安装程序_java MSI_10

        代码如下:

package cn.onesis.dataengine.utils;

import org.gdal.gdal.Dataset;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;

public class GDALTestApplication {
    public static void main(String[] args) {
        gdal.AllRegister();
        String fileName = "F:\\1Trans\\test.tif";
        Dataset dataset = gdal.Open(fileName, gdalconstConstants.GA_ReadOnly);
        if (dataset == null) {
            System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());
            System.err.println(gdal.GetLastErrorMsg());

            System.exit(1);
        }

        double[] ori_transform = dataset.GetGeoTransform();
        System.out.println(String.format("Origin = (%s, %s)", ori_transform[0], ori_transform[3]));
        System.out.println(String.format("Pixel Size = (%s, %s)", ori_transform[1], ori_transform[5]));
    }
}

运行测试:

java MSI java msi安装程序_java_11

 到这里,GDAL就安装并配置成功了(撒花)

PS:之前自己测试的时候,会出现 Native library load failed. 的报错,这是因为没有做dll的复制和jar在项目里的添加。

最后实现其他demo的时候还是有了报错:PROJ: proj_identify: Cannot find proj.db

于是简单的解决方法是在环境变量里配置一下用户变量,变量值去找GDAL路径下的

C:\Program Files\GDAL\projlib

变量名即 PROJ_LIB

java MSI java msi安装程序_java MSI_12

注意:如果仍没有解决问题:

1.看变量值那个路径中有没有 proj.db 这个文件,如果没有说明GDAL不完整,需要重新下载或编绎。

2.环境变量设置好后将电脑关机重新启动。