LINUX.ORG.RU

Как подключить JNotify к проекту в Eclipse?

 , , ,


0

1

Други, объясните мне, пожалуйста. Вот я скачал архив с этой библой. Хочу ее заюзать в своем проекте (пока тестовый). Маны к ней и примеры прочитал, набросал класс-листенер, доп.классы. Все бы хорошо. Но! Как ее подключить к проекту эту либу? Использую Эклипс (не предлагайте другие варианты тут).

Что испробовано. Создал в корне проекта папку lib, туда положил jar от этой библы, 2 подпапки с архитектурой (тут, может, ошибся, не?), а в них - so от этой библы.

bvn13@diowobook:~/workspace/gui/src> ls -R
.:
lib  main  resources  test

./lib:
jnotify-0.93.jar  x86  x86_64

./lib/x86:
libjnotify.so

./lib/x86_64:
libjnotify64.so

В Эклипсе, в свойствах проекта, в разделе Java Build Path добавил следующее. На закладке Libraries - саму jar-компоненту. https://dl.dropboxusercontent.com/u/3037477/screen/2013-09-21-232021_799x532_...

А на закладке Source прописал путь к нативным библам. https://dl.dropboxusercontent.com/u/3037477/screen/2013-09-21_791x535_scrot.png

В главном классе написал код:

public class App 
{
	static
	{
		System.loadLibrary("libjnotify"); // Notice lack of lib prefix
	}
}

и после этого всего (что вычитал из гугла) при запуске пишет:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no libjnotify in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
	at java.lang.Runtime.loadLibrary0(Runtime.java:845)
	at java.lang.System.loadLibrary(System.java:1084)
	at ru.diowo.linux.gui.xappmenu.App.<clinit>(App.java:11)

Подскажите, пожалуйста, что я сделал не так, что - так, а что вообще не сделал?

PS. Нативный API для path watcher-а пока не хочу задействовать.

★★★★★

Последнее исправление: bvn13 (всего исправлений: 1)

Ответ на: комментарий от anonymous

я сначала тоже заванговал, но оно ругалось аналогично. Правда, когда я расположил so (от 32битной архитектуры) непосредственно в lib/, то ошибка была что-то вроде: неверная архитектура библиотеки. Поэтому начал копать дальше, прочитал про структуру подкаталогов согласно архитектурам, их «ручному» подключению в java-коде... В общем, гугл не друг мне сегодня.

bvn13 ★★★★★
() автор топика

скорее всего loadLibrary(«jnotify») - лібу обязан грузіть тот, кто её юзает через native функціі.

К тому же ліба обязана лежаць в java.library.path (сделай System.getProperty(«java.library.path») чтобы увідеть что там сейчас.

dzidzitop ★★
()
Ответ на: комментарий от dzidzitop

Уважаемый, я понимаю, что в командной строке можно указать любой путь.. а как это в Эклипсе сделать? (может, я совсем туплю, конечно)

bvn13 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.