заставить Джейкоба работать с исполняемым файлом Java

Я составил программу, и в одном из методов используется Джейкоб. Пока я работал над программой в компиляторе, я мог заставить работать библиотеку Jacob только в том случае, если помещал файл jacob-1.18-x64.dll в ту же папку, что и проект, над которым я работал. Это работало нормально, пока я не попытался обернуть программу в файл .exe с помощью Launch4j. Когда я щелкаю версию программы .exe, она выдает ошибку Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.18-x64 in java.library.path, когда переходит к методу, использующему Джейкоба. Я знаю, что проблема в том, что он не может найти библиотеку, но я не уверен, как подключить эту библиотеку к файлу .exe. Как заставить этот файл .exe запускаться и включать библиотеки Jacob? Как я уже упоминал ранее, чтобы заставить программу работать в среде IDE, мне пришлось переместить .dll в ту же папку, что и проект. В итоге попробовал сделать то же самое с файлом .exe, но даже в той же папке не работает. Что еще мне нужно сделать, чтобы заставить это работать?


person Jcmoney1010    schedule 11.01.2016    source источник


Ответы (2)


Вы должны установить java.library.path в командной строке JVM, примерно так:

java -Djava.library.path=jacob-1.18-x64.dll -cp your_class path YourMainClass

Предлагаю сначала разобраться запускать вот так из командной строки, а потом узнать, как правильно преобразовать вашу полностью рабочую командную строку в Launch4j.

person janos    schedule 11.01.2016

Jacob v1.18 вызывает System.loadLibrary(dllname) для загрузки файла DLL. Правило поиска основано на системном свойстве java.library.path (будьте осторожны, менять его после запуска JVM бесполезно)

Вы можете проверить этот ответ об изменении конфигурации Launch4j< /а>

person Beck Yang    schedule 07.02.2016