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 : à quoi sert le fichier d'entête géneré par javah ?


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 20
    Par défaut JNI : à quoi sert le fichier d'entête géneré par javah ?
    Bonjour,

    Je suis en train d'essayer de mettre en oeuvre et comprendre le fonctionnement de la JNI.

    J'ai fais quelques tuto trouvé sur internet, et dans toutes ces doc il est expliqué qu'il est necessaire de créer un fichier d'entête (.h) avec la commande "javah -jni". (il n'est pas dit pourquoi il faut créer ce fichier)

    Je ne comprend pas à quoi sert ce fichier.
    Pour comprendre j'ai supprimé le fichier .h existant sur mon disque, supprimé le "#include monfichier.h" de mon programme C et recompilé sans génerer le .h

    Miracle ... la compilation et le programme marche toujours.

    Mais alors à quoi sert donc ce fichier ?!

  2. #2
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 20
    Par défaut
    Je pense avoir compris (sans certitude aucune) :

    J'écrit moi même le ficher .def afin de génerer la dll.

    Les fonction JNIEXPORT et JNICALL permettent de définir ce qui doit être accessible dans la dll.

    J'imagine que ce fichier d'entête est donc utile lorsque l'on genère une dll de façon automatique.

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Par défaut
    Bonjour,
    les macros JNICALL et JNIEXPORT servent parfois à définir ce qui est exporté dans tes librairies dynamiques, et aussi la convention d'appel utilisée lors de l'invocation de ta fonction par la JVM.
    javah te fournit le prototype des fonctions natives que tu veux ajouter à ta classe. Il te faut reprendre ces entêtes et coder le corps des fonctions, compte-tenu de ce qui t'es donné ( le pointeur sur l'environnement par exemple ).

    Ici l'utilité du header te paraît inappropriée, mais imagine que tu doives valider ton code dans une phase de test unitaire, en ayant que ce fichier d'entête, et tu y trouveras un intérêt.

    S. Desbois

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

Discussions similaires

  1. à quoi sert le fichier app.config
    Par lasrevinu dans le forum C#
    Réponses: 3
    Dernier message: 22/04/2010, 14h30
  2. A quoi sert le fichier *.todo
    Par Leesox dans le forum EDI
    Réponses: 3
    Dernier message: 13/07/2007, 14h04
  3. a quoi sert un fichier de config
    Par norachaouia dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2007, 20h38
  4. [FLASH] A quoi sert un fichier .sol ?
    Par orelero dans le forum Flash
    Réponses: 6
    Dernier message: 27/07/2005, 13h21
  5. [SQL Server 2000] A quoi sert le fichier ldf ?
    Par bouboussjunior dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/10/2004, 12h06

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