Установка пути к библиотеке для DLL, которая находится в файле JAR - PullRequest
0 голосов
/ 09 декабря 2011

В моем настольном приложении netbeans я сохранил .dll файлы Rxtx внутри проекта.Могу ли я установить путь к библиотеке для этих DLL-файлов.

Это иерархия проекта

имя_проекта

  • pacakge1

     rxtx
              rxtxSerial.dll
              rxtxParall.dll
    
  • package2

  • META-INF

Заранее спасибо.

1 Ответ

4 голосов
/ 09 декабря 2011

Когда Java-код загружает собственную библиотеку (обычно выполняется через System.load()), этот вызов является собственным вызовом ОС. Фактическая загрузка DDL выполняется ОС (пожалуйста, исправьте меня, если это не так). В этом случае ОС потребуется определенный путь к DLL для загрузки. Если библиотеки DLL находятся внутри какого-либо jar-файла, ОС не распознает структуру jar-файлов (это может быть интерпретировано только во время выполнения java), поэтому эти файлы не будут найдены при упаковке внутри jar-файла.

В качестве примера, для стандартного дистрибутива JDK все файлы классов упакованы в файл rt.jar, тогда как все библиотеки DLL собственного кода (сокеты, awt и т. Д.) Находятся в отдельном месте (jre/bin). Поэтому я бы предложил создать два набора файлов: один jar и другие DLL. Создать ZIP архив. Теперь, если кому-то нужно это использовать, распакуйте его, сохраните jar в classpath и DLL в PATH.

...