Mac OS 上的 Gdal 安装

Gdal installation on Mac OS

我正尝试在 Mac OS 中使用 Gdal 库和 Java。但我是 Goal 的新手,我无法让它发挥作用。

此外,我正在使用 Maven。所以我添加了对 pom.xml

的依赖
    <dependency>
        <groupId>org.gdal</groupId>
        <artifactId>gdal</artifactId>
        <version>2.1.0</version>
    </dependency>

为了在 Eclipse 上测试它,我创建了一个简单的 class,如下所示:

import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;
import org.gdal.ogr.ogr; 

public class test {
    public static void main(String[] args) {
                gdal.AllRegister(); 
    }
}

执行时遇到以下错误:

本机库加载失败。 java.lang.UnsatisfiedLinkError: java.library.path

中没有 ogrjni

我试了一整天都没有成功。我只想知道一种在 Eclipse 中执行 Gdal 的简单方法。

PS: 我可以 运行 Gdal 在终端上成功

当您 运行 java 时,您需要设置 java.library.path 系统 属性。它必须指向包含 gdal 共享库的目录。我还发现您可能还需要设置 DYLD_LIBRARY_PATH 或 DYLD_FALLBACK_LIBRARY_PATH 环境变量。

我通过自制软件安装了 gdal,这是我所做的:

export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/opt/gdal/lib
java -Djava.library.path=/usr/local/opt/gdal/lib -cp gdal.jar ...

GDAL 安装

安装参数

确保你已经安装了带有 java 和 swig-java 参数的 gdal。

brew install gdal --with-java --with-swig-java

ps:在 运行 上面的命令之前删除当前的 gdal 安装。

您可能需要一些额外的参数。使用

检查所有参数

brew info gdal

另外,您可以检查下面可用的参数。

--with-armadillo

Build with Armadillo accelerated TPS transforms.

--with-complete

Use additional Homebrew libraries to provide more drivers.

--with-java

Build with java support

--with-libkml

Build with Google's libkml driver (requires libkml --HEAD or >= 1.3)

--with-mdb

Build with Access MDB driver (requires Java 1.6+ JDK/JRE, from Apple or Oracle).

--with-mysql

Build with mysql support

--with-opencl

Build with OpenCL acceleration.

--with-postgresql

Build with postgresql support

--with-python3

Build with python3 support

--with-swig-java

Build the swig java bindings

--with-unsupported

Allow configure to drag in any library it can find. Invoke this at your own risk.

--without-python

Build without python2 support

--HEAD

Install HEAD version

检查 gdal 所需的依赖关系

检查您是否已经安装了gdal 所需的所有依赖项。使用

brew info gdal

查看所有依赖项以及是否安装了它们。

==> Dependencies Required: libpng ✔, jpeg ✔, giflib ✔, libtiff ✔, libgeotiff ✔, proj ✔, geos ✔, json-c ✔, libxml2 ✔, pcre ✔, sqlite ✔, freexl ✔, libspatialite ✔

Optional: postgresql ✘, mysql ✔, armadillo ✔

==> Requirements Build: java >= 1.7 ✔, fortran ✔, git ✔

Optional: java >= 1.7 ✔, python3 ✔

Maven 配置

如果你在你的项目中使用maven,你需要在pom.xml中添加gdal依赖。

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

环境变量

你必须在 Ecli 中添加环境变量pse,如 jdeolive 所说。

Run > Run Configurations

然后 select 左侧的应用程序并转到“环境”选项卡。

添加 DYLD_LIBRARY_PATH 和 DYLD_FALLBACK_LIBRARY_PATH 指向 /usr/local/opt/gdal/lib。

这就是我安装 gdal 的方式,它在 macOS 10.12.6 上运行完美。