Экспорт в Runnable jar с дополнительными библиотеками собственного кода в eclipse - PullRequest
8 голосов
/ 11 января 2012

У меня проблемы с экспортом моего Java-проекта из Eclipse в виде исполняемого файла JAR.Мой проект Java использует внешнюю библиотеку (она называется jri).Я экспортировал файл jri.jar и установил путь к его собственной библиотеке в eclipse, и он отлично работает при разработке в eclipse.Однако, когда я экспортирую его как исполняемый jar-файл, я получаю следующую ошибку:

Cannot find JRI native library!
Please make sure that the JRI native library is in a directory listed in java.library.path.

Я поместил папку с именем lib в тот же каталог, что и jar моего проекта;эта папка lib содержит нативную библиотеку jriСобственная библиотека jri находится не в одном файле, а в папке.Это то же самое, что и в eclipse.

Я экспортирую свой проект в eclipse следующим образом:

Export...
Java > Runnable JAR file
Copy required libraries into a sub folder next to the generated Jar
Finish

И моя папка организована так:

folder project
  project.jar
  project_lib
    jri.jar
    jri native library folder  

MANIFEST.MF моего project.jar:

Manifest-Version: 1.0
Class-Path: . project_lib/jri.jar
Main-Class: index

Чего я хочу добиться, так это дать другому человеку папку, включая project.jar и все остальное, что нужно, чтобы он / она мог запускать ее без необходимостиустановить что-нибудь еще.Большое спасибо

Ответы [ 4 ]

8 голосов
/ 17 января 2012

Добавьте скрипт, содержащий что-то вроде этого:

#!/bin/bash
java -Djava.library.path=project_lib/native/ -jar project_lib/jri.jar

Я экспортирую некоторые Java-проекты таким образом.

3 голосов
/ 16 января 2012

Это относительно сложно реализовать.Решения, которые я видел, включают извлечение собственных библиотек в JAR во временный каталог ОС и затем загрузку его.Я бы пошел на комплексное решение для этого. Один Jar и Java Class Loader поддерживают его, а на второй странице вы найдете ссылки на аналогичные инструменты.

1 голос
/ 13 января 2012

Вы можете поместить библиотеки внутрь вашей банки:

Экспорт ...

Java> исполняемый файл JAR

Упакуйте необходимые библиотеки в сгенерированный Jar

Конец

Я всегда экспортирую этот путь. Я не знаю, сработает ли это в вашем случае, но стоит попробовать.

<ч />

Edit:

Смотрите эти ссылки:

Я предполагаю, что это как-то связано с тем, что LD_LIBRARY_PATH установлен неправильно. Или файл, который он ищет, не указан в указанном пути.

0 голосов
/ 08 сентября 2016

Вы знаете, у меня были похожие проблемы

Could not extract native JNI library.

все вышеперечисленные предложения не могут мне помочь.Я не мог остановиться и запустить gradle deamon с помощью следующей команды:

gradle --stop

Я увидел, что gradle deamon еще не остановился в моих процессах.Вот почему я убиваю это в моем процессе, и все будет хорошо:)

...