IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

probleme pour utiliser l'API JNA


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut probleme pour utiliser l'API JNA
    Bonjour j'essai d'apprendre à utiliser JNA.

    J'ai fait un petit programme bidon en c (testé avec JNI et ca fonctionne).

    Je veux maintenant utiliser la dll avec du jna:

    Voici le code
    TestJNAInterface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import com.sun.jna.*;
     
     
     
    public interface TestJNAInterface extends Library {	
     
     
    	TestJNAInterface INSTANCE = (TestJNAInterface)Native.loadLibrary("testJNI", TestJNAInterface.class);
     
     
     
    	public int addition(int a, int b);
    	public void testJni();
    	public String concat(String a , String b);
    et
    TestJNAImpl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class TestJNAImpl {
     
    	public  static void main(String[] argv){
    		TestJNAInterface lib = TestJNAInterface.INSTANCE;
     
    		lib.testJni();
    	}
     
    }

    j'obtiens une exception qui est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'testJNI': Le module spécifié est introuvable.
     
    	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:163)
    	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:236)
    	at com.sun.jna.Library$Handler.<init>(Library.java:140)
    	at com.sun.jna.Native.loadLibrary(Native.java:379)
    	at com.sun.jna.Native.loadLibrary(Native.java:364)
    	at TestJNAInterface.<clinit>(TestJNAInterface.java:8)
    	at TestJNAImpl.main(TestJNAImpl.java:5)
    du coup j'ai tester en mettant le path complet de la dll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import com.sun.jna.*;
     
     
     
    public interface TestJNAInterface extends Library {	
     
     
    	TestJNAInterface INSTANCE = (TestJNAInterface)Native.loadLibrary("C:/Users/binot/Desktop/HubOptLiaison/testJNI_JNA/worspace/TestJNA/lib/testJNI", TestJNAInterface.class);
     
     
     
    	public int addition(int a, int b);
    	public void testJni();
    	public String concat(String a , String b);
    le resultat est une autre exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'testJni': La procédure spécifiée est introuvable.
     
    	at com.sun.jna.Function.<init>(Function.java:179)
    	at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:344)
    	at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:324)
    	at com.sun.jna.Library$Handler.invoke(Library.java:203)
    	at $Proxy0.testJni(Unknown Source)
    	at TestJNAImpl.main(TestJNAImpl.java:7)

    Quel est l'erreur ? merci d'avance

  2. #2
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut
    est ce que le fait d'utliser visual studio 2005 peut expliquer le probleme. Ca n'ajouterai pas des decoration c++?

  3. #3
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut
    Le probleme est résolue, c'etait tres stupide de ma part, je compilai en C++ avec visual. J'ai remarquer cela car ca fonctionnai qd je créais ma dll via GCC. Du coup j'ai regarder les cconfiguration de visual et j'ai vu l'erreur.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme pour utiliser ma dll en release
    Par irnbru dans le forum MFC
    Réponses: 4
    Dernier message: 30/09/2007, 15h01
  2. Réponses: 1
    Dernier message: 03/08/2006, 20h40
  3. Réponses: 1
    Dernier message: 18/07/2006, 16h44
  4. [VS2005/Oracle] Probleme pour utiliser Oracle
    Par cnguyen dans le forum Oracle
    Réponses: 1
    Dernier message: 03/07/2006, 17h13
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo