我正在 Windows 7 上使用 Eclipse (Luna) 使用 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)
我已将 gdal 下包含 dll 和 jar 的所有目录添加到CLASSPATH
and PATH
环境的。
我认为这可能是库的问题,但我在路径中使用部署位置,这在 Eclipse 中有效。
在 eclipse 项目中.classpath
文件我注意到 gdal 引用有一个名为 CLASSPATH_ATTR_LIBRARY_PATH_ENTRY 的属性,它链接到 gdal\dll 目录,但我已经将其包含在路径中:
<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 吗?我已经尝试了通常与 gdal.jar 一起使用的 4 个,但这并没有改变我收到的错误。
我找到这篇文章/帖子:http://sandbox.idre.ucla.edu/sandbox/tutorial/installing-gdal-for-windows http://sandbox.idre.ucla.edu/sandbox/tutorial/installing-gdal-for-windows
它讨论了为 Windows 设置 GDAL,比我所拥有的包含和参考的蜘蛛网要简单得多。
我从 ClassPath 和 Path 中删除了对 gdal 的所有引用。
然后我只添加了链接gdal/bin/gdal/java/gdal.jar
在 ClassPath 和链接上gdal/dll
路径上的目录。就是这样......这就是你需要做的一切......
帖子里有提到GDAL_DATA
and GDAL_DRIVERS
,我不需要这些,但你可以添加它们以确保安全。
update
GDAL_DATA
需要的,仅供参考gdal/bin/gdal_data
iirc
我只能推断 Eclipse 不使用类路径,因此我在 ClassPath 上放置的额外引用只是令人困惑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)