2009-12-18 9 views
0

J'ai deux fichiers JAR signés, a.jar et b.jar. a.jar est lancé en tant qu'applet dans le navigateur et b.jar est en Appdata/locallow/xyz (Vista). a ajoute b à son classpath et appelle certaines fonctions de b.jar. Jusqu'ici tout va bien. Maintenant b décompresse certaines DLL dans le répertoire de travail et en dépend. Il doit s'agir du répertoire de travail, car les DLL se réfèrent les uns aux autres, donc aucun répertoire alternatif n'est possible. La mauvaise chose est, que le répertoire de travail (user.dir) dans Firefox est "c: \ program files \ mozilla firefox" ... Donc, mon application fonctionne aussi longtemps que l'utilisateur a des droits d'administrateur. Mais dès qu'un utilisateur normal lance l'applet, il se bloque lorsque l'application veut décompresser les DLL. Et ce n'est vraiment pas sympa d'avoir des applications-dll dans le répertoire de Firefox de toute façon ... Une solution serait de mettre le répertoire de travail dans le répertoire, où b.jar est. Est-ce possible d'une manière ou d'une autre?Définition du répertoire de travail d'une applet Java

Répondre

0

L'approche de l'applet n'est pas bien adaptée aux bibliothèques natives.

Je suggère de considérer Java Web Start qui contient directement le support des DLL. Il a été retravaillé en Java 6 pour bien fonctionner avec les applets aussi.

+0

De 6u10, il ne devrait pas y avoir beaucoup de différence. –