120 votes

Comment faire pour regrouper une bibliothèque native et une bibliothèque JNI dans un bocal ?

La bibliothèque en question est de Tokyo Cabinet.

Je veux, c'est la bibliothèque native, JNI bibliothèque, et toutes les classes de l'API Java dans un fichier JAR pour éviter la redistribution des maux de tête.

Il semble y avoir une tentative de ce sur GitHub, mais

  1. Il n'a pas d'inclure la bibliothèque native, seulement JNI de la bibliothèque.
  2. Il semble être spécifique à Leiningen's en mode natif dépendances plugin (il ne fonctionne pas comme un redistribuable).

La question est, puis-je associer le tout dans un BOCAL et de le redistribuer? Si oui, comment?

P. S.: Oui, je me rends compte qu'il peut avoir de la portabilité des implications.

46voto

davs Points 1650

http://frommyplayground.com/How-to-load-native-JNI-Library-from-jar

est un excellent article, qui a résolu mon problème...

Dans mon cas j’ai le code suivant pour initialiser la bibliothèque :

16voto

Evan Points 9261

Jetez un oeil à Un POT. Il va envelopper votre application dans un seul fichier jar avec un spécialisé chargeur de classe qui gère les "pots à l'intérieur des jarres", entre autres choses.

Il gère en natif (JNI) des bibliothèques par les décompresser un dossier de travail temporaire en tant que de besoin.

(Disclaimer: je n'ai jamais utilisé Un POT, n'est-ce pas nécessaire pour que pourtant, tout avait un signet pour un jour de pluie.)

5voto

tukushan Points 2574

JarClassLoader est un chargeur de classes pour charger des classes, des bibliothèques natives et des ressources d’un monstre unique JAR et de pots à l’intérieur du monstre JAR.

1voto

TofuBeer Points 32441

Vous devrez probablement unjar de la bibliothèque native pour le système de fichiers local. Autant que je sache le morceau de code qui effectue le chargement natif examine le système de fichiers.

Ce code devrait contribuer à vous aider à démarrer (je n’ai pas regardé depuis un moment et c’est dans un but différent, mais devrait faire l’affaire et je suis très occupé en ce moment, mais si vous avez des questions juste laisse un commentaire et je vous répondrai dès que je peux).

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