jaybird embedded no jaybird in java.library.path

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Scalder
Сообщения: 5
Зарегистрирован: 27 окт 2004, 08:27

jaybird embedded no jaybird in java.library.path

Сообщение Scalder » 05 авг 2005, 10:30

Добрый день!

Пробую собрать примерчик по работе со встраиваемой БД и вот не получаеться - может, есть варианты как решить проблемку?

Код: Выделить всё

Class.forName("org.firebirdsql.jdbc.FBDriver");
conn = DriverManager.getConnection("jdbc:firebirdsql:embedded:/lgot.fdb");
На, что эта собака ругаеться так:

Код: Выделить всё

java.lang.UnsatisfiedLinkError: no jaybird in java.library.path
Как я нашел в интернете java.library.path по умолчанию указывает на системную переменную path по которой, в данном случае, программа не может найти fbembed.dll.

Очень странно т.к. я закидывал её по этим путям.
И вроде с начала программа должна поглядеть в текущей папке, где эта длл тоже лежит.

Стоит задача - никуда это дело не закидывать и ручками не прописывать, а чтоб просто все это дело лежало в папке программы.

p.s.
С System.loadLibrary - тоже игрался - не помогло.

eugeney
Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Re: jaybird embedded no jaybird in java.library.path

Сообщение eugeney » 05 авг 2005, 10:52

Scalder писал(а):Добрый день!

Пробую собрать примерчик по работе со встраиваемой БД и вот не получаеться - может, есть варианты как решить проблемку?
Для работы с native и embedded используется JNI код, который лежит в билиотеке jaybird.dll верся 1.5 и jaybird2.dll соотвественно для 2-бетта. Вот этот файл и должен быть включен в java.library.path.
Далее судя по вот этому

Код: Выделить всё

conn = DriverManager.getConnection("jdbc:firebirdsql:embedded:/lgot.fdb");
у тебя /lgot.fdb лежит в корне диска где стоит JVM? Рекомендую использовать пути типа

Код: Выделить всё

conn = DriverManager.getConnection("jdbc:firebirdsql:embedded:c:/MyFolder/lgot.fdb");
Или

Код: Выделить всё

conn = DriverManager.getConnection("jdbc:firebirdsql:embedded:/home/usr_name/MyFolder/lgot.fdb");
Для linux.

Scalder
Сообщения: 5
Зарегистрирован: 27 окт 2004, 08:27

Сообщение Scalder » 05 авг 2005, 11:44

А как из программы можно работать с java.library.path?

eugeney
Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Сообщение eugeney » 05 авг 2005, 12:33

Scalder писал(а):А как из программы можно работать с java.library.path?
Из программы никак, только в качестве параметров в момент запуска

Код: Выделить всё

java -Djava.library.path=.;%PATH% ....

itmaster
Сообщения: 1
Зарегистрирован: 23 июл 2006, 18:37

Сообщение itmaster » 23 июл 2006, 18:45

А как из программы можно работать с java.library.path?

Код: Выделить всё

final Properties systemProperties = System.getProperties();

final String pathKey = "java.library.path";
final String newPathValue = properties.getProperty(pathKey) + ";C:\Program files\My Program\;";

properties.setProperty(pathKey, newPathValue);
Думаю идея понятна. =)

eugeney
Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Сообщение eugeney » 24 июл 2006, 17:28

itmaster писал(а):Думаю идея понятна. =)
Ага. Тока не рабочая эта идея ну ни как :lol:

Ответить