2014-02-01 5 views
0

Моя задача: Я использую Hansoft (инструмент для гибкого управления проектами) sdk, чтобы использовать его функцию api для извлечения данных с нашего локально реализованного Hansoft Server.Проблема при вызове функции api jar, которая использует файл dll

Текущий статус: Моя среда разработки создана следующим образом: Java - 1.7.0.51 (64-разрядная версия), Затмение - Юнона Service Release 2 для Windows, 64-разрядной и Windows, 7 - 64 бит ,

Большинство функций api (встроенные функции) в jar реализованы на C++, поэтому в sdk есть файл jar и dll (на основе моей разработки envrionment, я использую hpmsdk.jar и HPMSdkJavaJNI.dll из skd's каталог папки (HansoftSDK_7_502 \ Win32 \ JavaSdkx64 \ lib)). Вы можете загрузить пакет почтовый HansoftSDK_7_502.zip из раздела «Hansoft SDK & интеграций» в http://www.hansoft.com/support/downloads/

Я создал Java проект в Eclipse, и добавил Hansoft апи банку (hpmsdk.jar) в пути сборки проекта и добавил DLL (HPMSdkJavaJNI. dll) в локальную библиотеку библиотеки jar's (hpmsdk.jar). Ниже приведена моя структура программы и путь к библиотеке.

Program Structure

Library path

Проблема Встречая: Когда я запускаю пример программы Java с Eclipse, я получаю сообщение об ошибке «sessionOpen с ошибкой: В SDK не может быть найден в текущем пути , (null) "отображается в Jframe следующим образом: Jframe

Как я уже упоминал, я добавил файл dll, но я не уверен, почему я получаю сбой SessionOpen. Эта ошибка возникает в коде, где первое использование функции dll вызывается из jar при выполнении функции HPMSdkSession.SessionOpen (HansoftSDKSample_SimpleJava.java из skd-каталога HansoftSDK_7_502 \ Samples \ SimpleJava \ src). Я дал значение коррекции в параметрах, указывающих на наш локальный сервер Hansoft и учетные данные.

m_Session = HPMSdkSession.SessionOpen("localhost", 0000, "Company Projects", "SDK", "SDK", m_Callback, null, true, debugMode, 0, "", "", null); 

Я пробовал различные варианты и тратить значительное количество времени на исправление этой проблемы, но я нахожу, что трудно разобраться этим вопросом. Дайте мне знать, нужно ли мне ссылаться на любые другие DLL или какие-либо альтернативы для сортировки этой проблемы в ближайшее время.

Любой человек с какой-либо помощью получает высокую оценку. Заранее спасибо.

+0

Существует проблема в Java 7, чтобы загрузить переменный путь либо из затмения или окна переменного пути. Я установил путь dll в параметре метода SessionOpen, и кажется, что dll подбирается. Теперь программа работает нормально. – tranandh

ответ

0

Я просто столкнулся с той же проблемой с Hansofts SDK в Linux, используя OpenJDK 1.7. Запрошенная DLL - это основная SDK-карта SDK (HPMsdk.). Для решения этой проблемы я последовал совету Anandhas в комментариях и назвал SessionOpen так:

m_Session = HPMSdkSession.SessionOpen("localhost", 0000, "Company Projects", "SDK", "SDK", m_Callback, null, true, debugMode, 0, "", "/path/to/sdk/dll/folder", null); 
Смежные вопросы