Vérifiez si une bibliothèque DLL est déjà chargée? (Java)
Dans un programme Java, je suis en train d'écrire-je faire une jni appel à une dll et de charger la bibliothèque au démarrage comme suit
static
{
System.loadLibrary("LdapAuthenticator2");
}
J'ai ensuite mis en œuvre une autre classe qui se charge de la même bibliothèque, et je reçois un message d'erreur indiquant que la bibliothèque est déjà chargé, est-il un moyen de vérifier si la bibliothèque est déjà en cours d'exécution?
Merci,
-Pete
source d'informationauteur Petey B | 2009-07-16
Vous devez vous connecter pour publier un commentaire.
Vérifier ma réponse à cette question
Comment puis-je obtenir une liste de bibliothèques JNI qui sont chargés?
La solution fonctionne, malheureusement, l'affiche de la question semble avoir des problèmes avec un SOLEIL non compatible JVM ou trop restrictive SecurityManager.
Lien vers l'exemple POC code source.
Liste chargé JNI bibliothèques java code source
Ce genre d'erreur? Si c'est une exception, vous pouvez l'attraper?
Une autre approche serait de faire exactement une classe responsable du chargement de la bibliothèque. Vous pourriez faire du chargement de la bibliothèque de la part de la classe d'initialiseur statique, puis le chargement de la classe == chargement de la librairie.
EDIT: le javadoc
de l'Exécution.loadLibrary()
(quiSystem.loadLibrary
appels) suggère même de l'initialiseur statique approche:La javadoc aussi dire:
qui me rend encore plus curieux au sujet de l'erreur que vous obtenez.