我正在尝试使用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目录。
我错过了什么吗?
答案 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可以找到本机库。