Bonjour,

Je cherche à utiliser une DLL dans mon application Java.

Pour cela, j'ai utilisé une méthode native coucou() que j'ai définie dans la classe Test.java.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public class Test
{
   static {System.loadLibrary("Projet"); }
   public native int coucou();
    public Test(){}
}
A partir de cette classe je génère un fichier Test.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <jni.h>
#ifndef _Included_Test
#define _Included_Test
#ifdef __cplusplus
extern "C" {
#endif
 
JNIEXPORT jint JNICALL Java_Test_coucou
  (JNIEnv *, jobject);
 
#ifdef __cplusplus
}
#endif
#endif
Avec Visual C++, j'ai créé un projet que j'ai nommé "Projet"

J'ai un programme Test.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include "Test.h"
#include <windows.h>
BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved){
        return TRUE;
    }
 
JNIEXPORT jint JNICALL Java_Test_coucou (JNIEnv *env, jobject jtest) {
    // je retourne une valeur egale à 1
    return 1;
}
J'ai aussi défini un Test.def dans le projet C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
EXPORTS
Java_Test_coucou
Pendant l'exécution j'ai toujours cette ereur dans la console du serveur JBoss :
java.lang.UnsatisfieldLinkError : coucou at .. (Native Method)
Quelqu'un aurait-il une idée du problème ?

Merci d'avance pour votre aide.