Добавлять.dll на java.библиотека.путь в проекте Eclipse/PyDev Jython
Я пытаюсь использовать скомпилированный .библиотека Jar Java в моем проекте PyDev Jython.
я успешно добавил .jar к PYTHONPATH и смог начать кодирование с автоматической полной работы.
библиотека требует .расширение dll, а также,javaHeclib.dll
, поэтому я добавил Это во внешний раздел Libs моего проекта.
Я могу импортировать библиотеку нормально, но я получаю ошибку, когда я пытаюсь получить доступ к любой из ее функций:
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
я добавил Аргумент VM для моей конфигурации запуска, без везения:
-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}"
(использование прямых косых черт не имело значения.) Я также попытался изменить args VM по умолчанию в eclipse.ini
, не повезло:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:pathtodll;${env_var:PATH}"
3 ответов
Я думаю, что лучший способ:
- создайте папку под проектом, например dll.
- скопировать все dll файлы в эту папку.
- в project - > Properties - > Java Build Path - > Source щелкните и разверните сведения об источнике.
- вы увидите расположение родной библиотеки, нажмите / выделите его.
- затем щелкните правка справа, снова щелкните рабочая область. Вы можете увидеть папку dll под проектом.
- выберите это и нажмите OK, OK. Вы увидите, что dll добавляется в собственное расположение библиотеки.
у меня это работает.
Для справки:
скажите, что dll вам нужно в Y:\path\to\dlls\lib\
. Затем установите рабочий каталог конфигурации запуска в Y:\path\to\dlls\
и установите аргументы VM для включения -Djava.library.path=lib
.
вот и все, теперь должно работать. Я не знаю, почему указание абсолютного пути в java.library.path
раньше не работал, но настройка рабочего каталога, похоже, сделала это.
возможно, это что-то особенное для конкретной библиотеки, которую я используя (или что Eclipse работает с другого диска, чем библиотека)...
У меня была аналогичная проблема, но с dll сценария призрака. Даже когда последовало размещение файлов в рабочем каталоге и следовали инструкциям, это не сработало для меня, обратитесь к тегу Ghost4J. Ява.ленг.UnsatisfiedLinkError: не удалось загрузить библиотеку 'gsdll64' и использовал-Djna.библиотека.путь, чтобы заставить его работать.