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 :

utilisation de jna


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut utilisation de jna
    Bonjour;

    je veux appeler une fonction écrite en c dans mon programme java;
    j'ai écrit mon code C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
    main()
    {
    	printf("hello ");
    }
    void mamethode()
    {
    	printf("hello from me");
    }
    j'ai compiler mon C fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        gcc -I %JAVA_HOME%\include -I %JAVA_HOME%\include\win32 -c HELLO.c
    j'ai générer mon dll :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        gcc -shared -Wl,--kill-at HELLO.o -o HELLO.dll
    et ma classe est:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    package org.test;
     
    import com.sun.jna.Native;
    import com.sun.jna.Library;
     
    public class Test {
    public interface CInterface extends Library {
    	public void main();
     
    	public void mamethode();
    }
    	public static void main(String[] args) {
    		String mytext = "Hello World!";
     
    		String libName = "C:\\dll\\HELLO.dll";
    		// if (System.getProperty("os.name").contains("Windows")) {
    		// libName = "msvcrt";
    		// }
     
    		// Loading dynamically the library
     
    		CInterface demo = (CInterface) Native.loadLibrary(libName,
    				CInterface.class);
     
    		demo.mamethode();
     
    	}
    }
    mais j'obtient l'erreur suivantes:
    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: Unable to load library 'C:\dll\HELLO.dll': The specified module could not be found.
     
    	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:145)
    	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:188)
    	at com.sun.jna.Library$Handler.<init>(Library.java:123)
    	at com.sun.jna.Native.loadLibrary(Native.java:255)
    	at com.sun.jna.Native.loadLibrary(Native.java:241)
    	at org.test.Test.main(Test.java:17)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Par défaut
    salut

    met ta dll dans ton fichier system32 de windows et met uniquement le nom de ta dll sur libName

    ça devrais le faire

    Je travaille aussi actuellement sur l import de fonction cc+ en java, j ai aussi un problème , je vois que tu programme en c++ , pourrais tu jetais un oeil a mon problème merci

    http://www.developpez.net/forums/d67...-fonction-cpp/

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour faire plus propre il faut que ta librairie se trouve dans le jna.library.path
    précisé au démarrage de la JVM (-Djna.library.path="/chemin/vers/la/lib").

    De plus ton libname ne correspond pas du tout à ce qui est attendu tel que décrit dans la documentation.

    Lire la documentation d'une library avant de l'utiliser s'avère en général une très très bonne idée et permet d'éviter de poser beaucoup de questions plus ou moins....

  4. #4
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    bonjour,
    merci pour vous tous,
    j'ai bien essayé de mettre mon dll dans le system32 mais pas de résultat;
    et j'ai essayé aussi JVM (-Djna.library.path="/chemin/vers/la/lib") mais pas de resultat,


  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    As tu au moins corrigé le libname qu tu passes

  6. #6
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    oui mais pas de nouveau

Discussions similaires

  1. Utilisation de JNA
    Par dsryam dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 22/05/2009, 23h06
  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
  4. [JNA] documentation sur l'utilisation des biliothèques natives
    Par soft0613 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 17/12/2007, 15h48

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