bonjour,
j'utilise une dll dans une application java.
Comment integrer cette dll à mon projet?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 static { System.loadLibrary("TestCPP"); }
bonjour,
j'utilise une dll dans une application java.
Comment integrer cette dll à mon projet?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 static { System.loadLibrary("TestCPP"); }
Tu dois faire appel à des fonctions native. Cherche du côté de JNI Java Native Interface.
mon application s'execute bien en ligne de commande..
mais la il ne reconnait pas l'appel à la fonction JNI dans eclipse.
que j'ai declaré comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part TestCPP.printCpp();
Ou dois-je importer ma dll?
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static native long printCpp();
Tu dois sûrement avoir une erreur du type UnsatisfiedLinkError ou quelquechose du genre?
As-tu définit les fonctions de ta dll selon les standards JNI? Parce que tu ne peux pas appeler une dll compilée normalement pour windows aussi simplement en java.
mon erreur est simplement
Le probleme n'est pas dans la realisation de la dll mais dans son integration à un projet eclipse
Code : Sélectionner tout - Visualiser dans une fenêtre à part TestCPP cannot be resolved. Sinon elle marche parfaitement!
Et bien en assumant que ta dll est bien adaptée à JNI, l'intégration dans un programme Java est assez simple. C'est du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class HelloWorld { static { System.loadLibrary("HelloWorld"); } public static native void printCpp(); public static void main(String args[]) { System.out.print("Hello "); HelloWorld.printCpp(); } }
Il ne faut pas oublier aussi le try...catch(..) qui permet de détecter les erreurs éventuelles de JNI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class HelloWorld { static { System.loadLibrary("HelloWorld"); } public static native void printCpp(); public static void main(String args[]) { System.out.print("Hello "); try { HelloWorld.printCpp(); } catch(UnsatisfiedLinkError e) { //... do something } } }
Partager