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 :

Tutorial JNI/JNA de adiGuba


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut Tutorial JNI/JNA de adiGuba
    Bonjour à tous

    J'essaie de suivre le tutorial de adiGuba (ici : http://blog.developpez.com/adiguba?t..._pour_les_nuls)

    Autant le JNA a fonctionner aussitôt, autant je n'ai pas réussi à faire fonctionner le JNI.

    Voici l'erreur que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Strcmp.JNIDemo.strcmp(Ljava/lang/String;Ljava/lang/String;)I
    	at Strcmp.JNIDemo.strcmp(Native Method)
    	at Strcmp.JNIDemo.main(JNIDemo.java:26)
    Pourtant la partie dans le static fonctionne car j'ai essayé de charger la librairie "toto" et je n'ai pas la même erreur, il me trouve donc bien ma dll.

    Quel est le problème?

    EDIT : j'ai bien essayé de mettre la librairie msvcrt.dll dans mon répertoire pointé par ma variable de librairie, puis de la chargée dans java mais rien.

    Merci !

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    J'ai un peu approfondi le problème.

    Je me suis créé une fonction test qui prend un int en paramètre, l'attribut à un int et retourne ce int (oui ça ne sert à rien )

    Et là aucun problème.

    Autrement dit, il semblerait que mon erreur vient du fait qu'au moment d'éxécuter le code C de strcmp, la JVM ne trouve pas où cette fonction se trouve.

    Quel fichier faut-il lui indiquer? Comment lui indiquer?

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par lamoua76 Voir le message
    EDIT : j'ai bien essayé de mettre la librairie msvcrt.dll dans mon répertoire pointé par ma variable de librairie, puis de la chargée dans java mais rien.
    JNI ne permet pas d'exécuter n'importe quelle fonction de n'importe quel librairie. Il faut impérativement que ce soit une librairie spéciale qui inclut les headers spécique de JNI.

    Si tu relis bien la partie consacré à JNI tu verras que pour appeler strcmp() on passe par un fonction Java_jnidemo_JNIDemo_strcmp()



    Il n'y a pas d'autre moyen avec du JNI pure...


    a++

Discussions similaires

  1. JNI, JNA ou com4j ?
    Par abe63 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/04/2009, 13h29
  2. Comment utiliser JNI ou JNA
    Par mimi51340 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 23/11/2008, 16h37
  3. Réponses: 28
    Dernier message: 23/10/2008, 15h06

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