Технология Jni, не работает пример :(

Тема в разделе "Java", создана пользователем lexluther, 23 ноя 2008.

Статус темы:
Закрыта.
  1. lexluther

    lexluther Гость

    Всем привет,

    Занялся изучением технологии JNI и столкнулся с проблемой. Мой пример не работает хотя код написан по всем правилам.

    Код C++ библиотеки сгенерированный при помощи javah:

    #include <windows.h>
    #include <jni.h>

    extern "C" JNIEXPORT void JNICALL Java_MyJavaPackage_NextLevelClass_ShowCall(JNIEnv *, jobject);

    И

    #include "MyJavaPackage_NextLevelClass.h"

    extern "C" JNIEXPORT void JNICALL Java_MyJavaPackage_NextLevelClass_ShowCall
    (JNIEnv *, jobject)
    {
    MessageBox(NULL,"TEST","TEST",MB_OK);
    }

    Есть класс в котором я определил внешний нейтивный метод:

    package MyJavaPackage;

    public class NextLevelClass{

    static {
    try{
    System.load("G:\\Documents and Settings\\artiom\\My Documents\\NetBeansProjects\\MyDesktopApplication\\dist\\lib\\MyDynamicLibrary.dll");
    }
    catch(UnsatisfiedLinkError g)
    {
    System.out.print(g.getMessage() + " LIBRARY EXCEPTION");
    }
    }

    private static native void ShowCall();

    public void GiveIt()
    {
    try{
    ShowCall();
    }
    catch(UnsatisfiedLinkError g)
    {
    System.out.print(g.getMessage() + " METHOD EXCEPTION\n");
    }
    }
    }

    Сам код в вызывающей программе выглядит следующим образом:

    NextLevelClass NLC1 = new NextLevelClass();

    NLC1.GiveIt();

    В результате при выполнении библиотека сама загружается идеально, но при вызове метода ShowCall возникает исключение UnsatisfiedLinkError. Подскажите пожалуйста в чем может быть проблема?

    Версия ОС:
    Windows XP Service Pack 3

    Версия JAVA (java -version):
    java version "1.6.0"
    Java(tm) SE Runtime Environment (build 1.6.0-b105)
    Java HotSpot(tm) Client VM (build 1.6.0-b105, mixed mode, sharing)

    Среда разработки (About окно):
    Product Version: NetBeans IDE 6.1 (Build 200805300101)
    Java: 1.6.0; Java HotSpot(tm) Client VM 1.6.0-b105
    System: Windows XP version 5.1 running on x86; Cp1251; uk_UA (nb)
    Userdir: G:\Documents and Settings\artiom\.netbeans\6.1
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей