Java JNI и зависимые библиотеки в Windows

Короче говоря: у меня есть исполняемый файл, который вызываетjni.dll который зависит отlib.dll, И я'Я становлюсь ужасно страшным.UnsatisfiedLinkError

это Ответ приходит довольно близко, но, по моему опыту, проблему не удается решить. Даже когда папка, где дллs указан вjava.library.path, она не будет работать. Я должен изменить WindowsPATH переменная окружения, а также. На самом деле, по умолчаниюjava.library.path на винде вроде бы.PATH

Есть ли "хорошенький" способ это исправить? Я хочу создать установщик для Windows, и яМне интересно, как бы я справился с этой проблемой, чтобы конечному пользователю не пришлось выполнять какую-либо ручную работу.

РЕДАКТИРОВАТЬ:

Я реализовал следующее: приложение поставляется с папкой "native_libs» который имеет динамические библиотеки для всех поддерживаемых архитектур. Структура следующая:

/
+- native_libs/
   +- windows/
   |  +- x86/
   |  |  +- ...
   |  +- x64/
   |     +- ...
   |
   +- linux/
   |  +- x86/
   |  |  +- ...
   |  +- x64/
   |     +- ...
   |
   +- libs/
      +- ...

Во время выполнения, пока приложение инициализируется, определяются правильная архитектура JRE и системная ОС, а надлежащие файлы библиотеки копируются в папку libs /.java.library.path устанавливается во время выполнения также с использованием обычного хака. Наконец,PATH Переменная окружения для Windows устанавливается с помощью встроенного средства запуска.

Есть ли место для улучшения? Может быть, копирование DLLв том же каталоге, что иjar файл будет отрицать необходимость установкиjava.library.path а такжеPATH переменные? Мне нужно расследовать загрузку DLLсSystem.load() а также, что сведет на нет необходимость копировать файлы.

Ответы на вопрос(4)

Ваш ответ на вопрос