Bonjour,
Mon applet java fonctionne avec une librairie JNI.
Sur mac, cette librairie, je la copie sur le répertoire /Library/Java/Extensions de l'utilisateur au chargement de l'applet pour que je puisse la charger ensuite avec System.loadLibrary("MaLib")
Avec un utilisateur normal, il n'y a pas de problème. La copie se passe normalement. Mais avec un utilisateur limité, la copie est refusée. C'est logique.
Pour que chaque utilisateur puisse utiliser des librairies d'extensions, on peut utiliser un répertoire qui lui est propre users/utilisateur/Library/Java/Extensions.
Après quelques tests, j'ai remarqué qu'au démarrage de Java, celui-ci utilise (pour le chargement de librairie) le répertoire users/utilisateur/Library/Java/Extensions si il existe, et /Library/Java/Extensions sinon.
Le problème est donc le suivant : si au démarrage de java le dossier propre à l'utilisateur limité n'existe pas, java va se baser sur celui du système en général. Même si je crée le répertoire et que je copie ma librairie dedans, java ne va pas le prendre en compte puisqu'il n'existait pas au démarrage.
Que faire? Existe-t-il un moyen de reinitialiser le java.library.path? Peut-on charger une librairie jni avec autre chose que System.loadLibrary?
Merci d'avance
Benjamin
ps hors sujet : d'autres personnes ont des problèmes(JSObject...) avec les dernières versions de Java(1.5.0_11) et IE(7.0)?
Partager