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 :

JNI UnsatisfiedLinkError sur une methode


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut JNI UnsatisfiedLinkError sur une methode
    Bonjour,

    je fait un tutoriel (hello world) ou Java appel la fonction hello world C++ avec JNI.

    Je travail sous eclipse helios, avec Java et avec le plugin CDT.

    Java trouve bien la librairie dll partagee du C++ mais j ai qd meme l exception:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: print

    d ou cela peut venir ?

  2. #2
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    tu peux nous montrer comment tu lance ton programme ??

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Et voila,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class HelloWorld {
     
        private native void print();
     
        public static void main(String[] args) {
            new HelloWorld().print();
        }
     
        static {
            System.loadLibrary("libHelloWorldCPP");
        }
     
    }

  4. #4
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    ça ne suffit pas et comment tu config le chemin du .dll ???

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    la dll est ds le classpath

    mais ca non pus ca marche pas:
    System.load("C:/workspace_test/HelloWorldJava/lib/libHelloWorldCPP.dll");

  6. #6
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    dans run->runconfiguration->Environment ensuite "New" button, entrer "java.library.path" pour variable et le chemin du package contenant .dll

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    je pense que la dll est bien chargee car le message d erreur est differente dans ce cas:

    java.lang.UnsatisfiedLinkError: no libHelloWorldCPPP in java.library.path

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Resolu,

    il faut ajouter --add-stdcall-alias en parametres pour le linker sinon le nom des methodes n est pas conforme a celui du .h genere par JNI

    Cf tutorial.

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

Discussions similaires

  1. Binding sur une methode avec un argument dynamique?
    Par takinelinfo dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 19/05/2011, 14h39
  2. java.lang.UnsatisfiedLinkError sur ma methode native
    Par fk04 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 18/03/2010, 10h23
  3. Réponses: 9
    Dernier message: 09/12/2008, 00h07
  4. Réponses: 1
    Dernier message: 27/03/2007, 14h07
  5. Pointeur sur une methode d'une classe
    Par Pe04 dans le forum C++
    Réponses: 2
    Dernier message: 02/03/2006, 13h29

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