GeoTools / GDAL: Предупреждение: не удалось загрузить собственные библиотеки kakadu - PullRequest
1 голос
/ 22 марта 2012

Я пытаюсь использовать GeoTools для чтения файла dted, но у меня много проблем с конфигурацией.Я использую затмение и Java.Вот сокращенная версия моего кода:

import org.geotools.coverageio.gdal.dted.DTEDReader;

public class ViewDTED {
public static void main(String[] args) {
try {
DTEDReader reader = new DTEDReader(new File("C:\\temp\\mydted.dt2"));
System.out.println("It worked!");
} catch (Exception e) {
e.printStackTrace();
}
}
}

При запуске консоль выдает сообщение «Предупреждение:Не удалось загрузить родные библиотеки Какаду ".Затем он продолжает печатать трассировку стека для UnsatisfiedLinkError.

Мой системный путь включает: C: _path C: \ Program Files \ gdal-1.9.0 C: \% JAVA_HOME% \ bin C: \ Program Files\ Common Files \ ESRI \ Raster \ bin \ ntx86

Последний содержит много dll, в том числе единственные dll, которые я обнаружил на своей машине, с именем kakadu.

в C: _path У меня есть это:gdal19.dllgdaljni.dllogrjni.dllosrjni.dllgdalconstjni.dllgdal.jar

Эти файлы также были скопированы в корень моего проекта Eclipse.Мой путь сборки eclipse включает gdal.jar и каждый jar-файл, найденный в C: \ Program Files \ geotools-2.7.4

В корне моего проекта eclipse у меня есть следующее:

gdal19.dllgdaljni.dllogrjni.dllosrjni.dllgdalconstjni.dllkakaducoresys.dll

О да, у меня определена другая переменная окружения: для GDAL_DATA задано значение "C: \ Program Files \ gdal-1.9.0"

Может кто-нибудь объяснить, почему DTEDReader не может найтинеобходимые библиотеки?

1 Ответ

0 голосов
/ 09 августа 2012

Убедитесь, что вы не пытаетесь вызывать 32-разрядные библиотеки DLL из 64-разрядного экземпляра JAVA.

Я столкнулся с аналогичной проблемой с Kakadu на сервере Windows при попытке заставить работать Djatokaс Fedora Commons.Помимо проблем с маршрутизацией, основной причиной проблемы оказалось то, что я пытался загрузить бесплатную 32-разрядную версию библиотек Kakadu из Djatoka на 64-разрядный экземпляр Tomcat и 64-разрядную версию JAVA.

JAVI-файлы JAVA казались весьма разборчивыми при попытке связаться с 64/32-битными DLL (или общими объектами), поэтому подделка 64-битной структуры библиотеки для Kakadu с использованием переименованных 32-битных файловРабота.

Чтобы решить эту проблему, мне пришлось установить отдельную 32-разрядную версию Tomcat и JAVA на одном сервере Windows, чтобы 64-разрядная версия Fedora Commons могла общаться с 32-разрядной версиейКакаду через Дятоку.

...