2010-03-03 5 views
4

L'utilisation de la JNA, la documentation dit:Comment rendre une bibliothèque cible disponible pour mon application Java?

Faites votre bibliothèque cible disponible à votre programme Java. Il existe deux façons de procéder: La méthode préférée consiste à définir la propriété système jna.library.path sur le chemin d'accès à votre bibliothèque cible. Cette propriété est similaire à java.library.path mais s'applique uniquement aux bibliothèques chargées par JNA.

Qu'est-ce que cela signifie réellement? Comment définir la propriété système jna.library.path? Mon application doit faire référence Kernel32.dll

Merci

+1

Vous dites JNI, mais le fragment que vous avez fourni mentionne JNA. Ce sont deux options différentes pour utiliser des bibliothèques natives en Java. – pajton

Répondre

9

Vous pouvez définir les propriétés du système en utilisant le paramètre « -D » lorsque vous invoquez la machine virtuelle Java sur la ligne de commande:

java -Djna.library.path=<path to your library> MainClass

Vous pouvez également définir ce par programme dans votre code au démarrage de vos applications lorsqu'il a été lu par exemple un fichier de configuration:

System.setProperty("jna.library.path", <path to your library>); 

Je n'ai pas utilisé moi-même la JNA, donc je ne sais pas s'il est en fait trop tard pour la machine virtuelle Java lorsque vous définissez la valeur dans le code. Dans ce cas, allez avec la première option.

+0

Merci, pouvez-vous expliquer ce que signifie la clause 'MainClass'? Est-ce que cela nécessite de référencer le point d'entrée de ma demande? – MalcomTucker

+0

tout fonctionne merci – MalcomTucker

+0

Oui, MainClass est le point d'entrée, c'est-à-dire la classe avec la méthode 'main()'. –

Questions connexes