Как я могу включать определенные для платформы собственные библиотеки в.JAR файл с помощью Eclipse?

Я только начинаю изучать JNI. Я следовал простому примеру, и я создал приложение Java, которое называет Привет Мировой метод в собственной библиотеке. Я хотел бы быть нацеленным на Win32 и Linux x86.

Моя библиотека находится в DLL, и я могу назвать ее очень хорошо использованием LoadLibrary, когда DLL добавляется к корню моего проекта Eclipse.
Однако я не могу выяснить, как заставить Eclipse экспортировать выполнимый JAR, который включает DLL и.SO файл для Linux.

Таким образом, мой вопрос в основном; как Вы пошли бы о создании проекта в Eclipse и включали бы несколько версий той же собственной библиотеки?

Спасибо,
Martin

6
задан Martin Wiboe 23 April 2010 в 21:41
поделиться

2 ответа

Для исполняемых JAR-файлов вам нужно извлечь их во временный каталог (возможно, в статический блок {}), а затем загрузить DLL из этого каталога (используя System.loadLibrary () в том же блоке). Для этого вам нужно создать подкласс ClassLoader и переопределить метод findLibrary (), чтобы библиотеки можно было найти в этом каталоге. Здесь вы можете использовать любую логику, которая вам нужна, чтобы загрузить библиотеки конкретной платформы. Честно говоря, наименования библиотек на разных платформах в любом случае должны быть одинаковыми - я считаю, что вы опускаете часть «lib» при загрузке и расширение. В этом суть. Наверное, проще использовать One-JAR, как упоминалось на другом плакате :)

4
ответ дан 17 December 2019 в 00:06
поделиться

Возможно, вы захотите ознакомиться с проектом One-JAR. Он позволяет упаковать ваше приложение и его зависимости (включая родные библиотеки) в один jar-файл.

3
ответ дан 17 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: