9 votes

Inconvénients de l'utilisation de l'interface native Java

Je n'arrive pas à comprendre ces deux inconvénients de l'utilisation de JNI. Je voudrais en savoir plus à leur sujet :

  • Difficile de déboguer une erreur d'exécution dans code natif

  • Les erreurs dans le code JNI entraînent l'arrêt de toute la JVM et ne fournissent aucun mécanisme de reprise en douceur.

0voto

David R Tribble Points 4813

Je ne sais pas si cela peut aider, mais j'ai utilisé une méthode native pour définir un drapeau statique dans mon code JNI/C afin d'activer ou de désactiver le suivi du débogage (par défaut, il est désactivé). J'ai ensuite utilisé de bons vieux appels printf() au début de chaque fonction JNI qui ne s'exécutaient que si le drapeau était activé. C'est rudimentaire mais ça marche.

C'est aussi une bonne idée de fournir une sorte de contrôle de version entre la classe Java et ses fonctions JNI. Cela peut être fait avec une fonction JNI qui est appelée à partir d'un bloc d'initialisation de classe statique. Si le client dispose de la mauvaise combinaison de bibliothèques (par exemple, le fichier Jarfile a été mis à jour mais pas la bibliothèque partagée JNI, ou vice versa), vous pouvez lever une exception au moment du chargement de la classe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X