打开文件gdal java时出错

时间:2016-10-12 21:10:40

标签: java gdal geotiff

我正在尝试使用gdal api(java)加载geotiff文件。这是我的测试代码。

public class App 
{
    public static void main( String[] args )
    {
        gdal.AllRegister();
        Dataset dataset = gdal.Open("output.tif");
    }
}

但我有错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.Dataset_SWIGUpcast(J)J
at org.gdal.gdal.gdalJNI.Dataset_SWIGUpcast(Native Method)
at org.gdal.gdal.Dataset.<init>(Dataset.java:20)
at org.gdal.gdal.gdal.Open(gdal.java:585)
at org.gdaltest.projection.App.main(App.java:18)

我正在使用maven项目,所以我添加了gdal依赖

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

我正在使用Windows 10并安装了gdal 2.1.0。我已经在路径中设置了环境变量GDAL_DATA和Gdal目录。

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。我用位于gdal文件夹(C:\ Program Files \ GDAL)中的jar文件替换了位于存储库maven(C:\ Users \ Myuser.m2 \ repository \ org \ gdal \ gdal \ 2.1.0)中的jar文件。现在它有效。

答案 1 :(得分:0)

当不得不处理本机库时,可怕的UnsatisfiedLinkErrors是非常常见的问题。

通常,您需要设置java.library.path VM参数,以便Java可以找到本机库。

See an example here

Another gdal related unsatisfied link error issue here