Я пытаюсь использовать скомпилированную библиотеку Java .jar в своем проекте PyDev Jython.
Я успешно добавил файл .jar в PYTHONPATH и смог начать кодирование с автоматическим завершением работы.
Для библиотеки также требуется расширение .dll, javaHeclib.dll
, поэтому я добавил его в раздел «Внешние библиотеки» моего проекта.
Я могу нормально импортировать библиотеку, но получаю сообщение об ошибке при попытке получить доступ к любой из ее функций:
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
Я добавил аргумент виртуальной машины в свою конфигурацию запуска, но безуспешно:
-Djava.library.path="Y:/path/to/javaHeclib.dll;${env_var:PATH}"
Я могу запустить библиотеку из командной строки просто отлично, используя java.library.path
выше.
Экспериментируя в консоли PyDev, я заметил, что могу загрузить расширение .dll с абсолютным путем, но не с относительным:
>>> import java.lang
>>> java.lang.System.load('Y:/path/to/javaHeclib.dll')
>>> java.lang.System.loadLibrary('javaHeclib')
Traceback (most recent call last):
File "<console>", line 1, in ?
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
К сожалению, библиотека использует вызов System.loadLibrary
. выше, и у меня нет доступа к его источнику.
Почему javaHeclib.dll
отсутствует в моем java.library.path
?
РЕДАКТИРОВАТЬ
Установка java.library.path
на каталог, содержащий dll, не позволила мне загрузить его с помощью System.loadLibrary
.
-Djava.library.path="Y:/path/to/dll/;${env_var:PATH}"
(Использование косой черты не имело значения.) Я также попытался изменить аргументы виртуальной машины по умолчанию в eclipse.ini
, но безуспешно:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"