Я пытаюсь использовать скомпилированную библиотеку Java.jar в моем проекте PyDev Jython.
Я успешно добавил .jar в PYTHONPATH и смог начать кодирование с автоматической полной работой.
В библиотеке также требуется расширение .dll, javaHeclib.dll
, поэтому я добавил это в раздел "Внешние Libs" моего проекта.
Я могу импортировать библиотеку в порядке, но я получаю сообщение об ошибке при попытке доступа к любой из его функций:
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 Console, я заметил, что могу загрузить расширение .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}"
(Использование косых черт не имеет значения.) Я также попытался изменить аргументы VM по умолчанию в eclipse.ini
, не повезло:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"