2010-10-01 18 views
4

J'ai une applet (java) qui écrit certains fichiers dans le système de fichiers du client. Dans Chrome et IE fonctionnent parfaitement et firefox aussi, seulement si je l'exécute avec des autorisations d'administrateur. (clic droit -> Exécuter en tant qu'administrateur). Cette solution ne semble pas appropriée pour une application d'entreprise.Pourquoi l'applet signée n'a pas pu écrire des fichiers sur le système de fichiers client avec firefox?

Par ailleurs, l'applet fait partie d'une grande application Web d'entreprise. Donc, je n'ai pas la sécurité que les clients seront en mesure d'exécuter firefox en tant qu'administrateur.

+1

donne la pile complète (s'il y a une exception), ou décrivez le problème, s'il n'y a pas d'exception – Bozho

+0

L'exception concernait l'autorisation d'IO File refusé. Je ne peux pas écrire des fichiers ... J'ai besoin d'un emplacement où je peux écrire des fichiers dans la machine cliente. – oracleruiz

Répondre

1

Un bon endroit pour stocker les données d'application est dans un sous-répertoire de user.home. Utilisez un sous-répertoire basé sur le nom du paquetage de la classe principale, pour éviter que votre 'settings.dat' entre en collision avec notre 'settings.dat'!


Pour le rendre encore plus « de Windows convivial » (lorsque la propriété concernée indique Win. Bien sûr!) Le répertoire racine des paramètres pour une application Java. peut être $ {user.home}/AppData/Local/Java/

+0

Merci pour l'idée. Le code en Java est: System.getProperty ("user.home") pour obtenir le chemin d'accès au répertoire de base de l'utilisateur. À plus! – oracleruiz

1

Peut-être que c'est Firefox lui-même qui n'a pas les permissions d'écrire où vous voulez écrire?

+0

umm non .. Je ne pense pas. J'écris dans ".", À l'intérieur du firefox, à l'intérieur des données locales firefox de l'utilisateur. C'est l'endroit où j'ai la sécurité que l'applet pourra écrire. Dans une autre partie du système de fichiers, je ne suis pas sûr des autorisations. – oracleruiz

+1

Je dirais que "." est très probablement candidat à une cause problématique. Microsoft met en garde contre l'utilisation du concept de répertoire courant pour les applications multithread, en particulier celles fortement multithread. Donc je suppose que c'est * le * problème. Pour tester, vous pouvez utiliser le chemin absolu, auquel vous savez sûrement que Firefox a accès (quelque chose comme c: \ temp). De cette façon, vous affinerez le problème. –