Библиотека Jacob 1.14.3 не обнаружена java.libary.path с использованием Eclipse - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь реализовать библиотеку JACOB для связи с некоторыми платежными устройствами, такими как PINPAD.Я создал проект Java, но когда основной класс выполняет метод, который использует DLL во время выполнения, выдает ошибку no jacob-1.14.3-x64 in java.library.path

Здесь вы можете найти то, что я использую для создания проекта:

  • Операционная система: Windows 10 64-битная
  • JRE / JDK версия: 1.8.0_181 64-битная * (изменена с 32 на 64-битная) *
  • Затмение: ФотонРелиз (4.8.0)
  • Версия Maven: 3.5.4
  • Версия JACOB: 1.14.3 (Оба файла: 64 [x64] и 32 [x86])

Здесь вы можете найти решения, которые у меня уже есть. Попробуйте


mvn install:install-file -Dfile=C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\jacob-1.14.3-x64.dll -DgroupId=jacob -DartifactId=jacob-dll -Dversion=1.14.3 -Dpackaging=dll -DgeneratePom=true


mvn install:install-file -Dfile=C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\jacob.jar -DgroupId=jacob -DartifactId=jacob-jar -Dversion=1.14.3 -Dpackaging=jar -DgeneratePom=true

  • Добавленозависимости от мавен пом.xml

Я искал разные вопросы в переполнении стека и все еще не работает, пытаясь каким-либо подходом, я хотел бы знать, есть ли у некоторых аналогичные проблемы и что еще я мог бы попробовать, чтобыреши это.Я очень ценю ваше время: D

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Просто для справки, к вашему начальному вопросу: переключитесь на 64-битный JDK, поскольку 64-битный dll не может быть вызван из 32-битного jre / jdk.

Относительно вашей следующей ошибки:

Невозможно создать объект

Перед использованием COM-объекта он должен быть зарегистрирован в системе (например, его CLSID или ProgID должен существовать в реестре Windows). Если он не зарегистрирован, для этого можно использовать утилиту regasm.exe:

Использование: Regsvr32 PathToDll

Или вы также можете попробовать: %systemroot%\Microsoft.NET\Framework64\vX.X\RegAsm.exe /verbose /nologo /codebase PINPAD.dll

(замените vX.X на версию, установленную в вашей системе, например v3.0 или v4.0.30319. Если вы хотите использовать 32-битную DLL, используйте ...\Framework\... вместо ...\Framework64\...)

После регистрации CoCreateInstance() метод API можно использовать для получения ссылки на интерфейс, предоставляемый объектом, и вызова его методов. Более подробную информацию можно найти здесь .

0 голосов
/ 27 августа 2018

Вы должны проверить правильность java.library.path.

Я писал -Djava.library.path="C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\"; и -Djava.library.path=C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\;, вы должны убедиться, что вы не используете

  • "" для окружения пути
  • ; в конце
  • и это должно быть \ в конце пути, чтобы указать, что это папка, содержащая dll.

ПослеЯ решил это, теперь я получаю следующую ошибку при выполнении программы.

com.jacob.com.ComFailException: Can't co-create object

...