由org.gdal.ogr.ogrJNI.GetDriverCount()引起的UnsatisfiedLinkError

我正在使用Eclipse(Luna)在Windows 7上开发Java。

我使用gdal进行一些ogr进程,并从eclipse运行应用程序是好的,但是从同一台机器上的命令行运行会遇到问题。

我得到以下内容:

Caused by: java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.GetDriverCount()I at org.gdal.ogr.ogrJNI.GetDriverCount(Native Method) at org.gdal.ogr.ogr.GetDriverCount(ogr.java:170) 

我已经添加了包含dlls和jar在gdal下的所有目录到CLASSPATHPATH环境。

我认为这可能是图书馆,但我正在使用在Eclipse中的path部署位置。

在eclipse项目的.classpath文件中,我注意到gdal引用有一个名为CLASSPATH_ATTR_LIBRARY_PATH_ENTRY的属性,它链接到gdal \ dll目录,但是我已经在path中包含了这个属性:

 <classpathentry exported="true" kind="lib" path="dependencies/gdal/bin/gdal/java/gdal.jar"> <attributes> <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="dependencies/gdal/dll"/> </attributes> </classpathentry> 

这是我能看到的唯一区别。 你如何在Windows机器上复制这个或由CLASSPATH和PATH处理?

我需要引用个人DLL吗? 我已经尝试了4通常与gdal.jar一起,但是这并不改变我得到的错误。

Solutions Collecting From Web of "由org.gdal.ogr.ogrJNI.GetDriverCount()引起的UnsatisfiedLinkError"

我发现这篇文章/发布: http : //sandbox.idre.ucla.edu/sandbox/tutorial/installing-gdal-for-windows

它讨论的是为窗口设置GDAL,比蜘蛛网和包含的参考文件要简单得多。

我把所有关于gdal的引用从ClassPath和Path中取出。

然后,我只添加了到ClassPath上的gdal/bin/gdal/java/gdal.jar的链接,并在Path上添加了一个到gdal/dll目录的链接。 就是这样…那就是你需要做的…

有关GDAL_DATAGDAL_DRIVERS的文章中提到,我不需要那些,但你可以添加这些是安全的。

需要更新 GDAL_DATA ,只需引用gdal/bin/gdal_data iirc即可

我只能推断Eclipse不使用类路径,所以我把它放在ClassPath上的额外引用只是令人困惑的事情。