2010-04-01 5 views
1

Je rencontre un problème plutôt méchant avec le serveur Windows 2008. Nous avons une application Java qui s'exécute en tant que service en utilisant l'utilisateur des services locaux. Le problème est que cet utilisateur n'a pas accès à la lecture/écriture dans le répertoire tmp java spécifié (spécifié par le système). Cela signifie que chaque fois que l'application essaie de créer un fichier tmp, une exception IOException est levée.Tmp problèmes avec le service java sur Windows 2008 service

Est-il possible de faire une application java qui ont besoin d'accéder à la piste de tmp comme un service sans:

  • Création d'un nouvel utilisateur spécifiquement pour le purspose
  • Spécifier un nouveau répertoire tmp (que vous aurez pour vous nettoyer)
  • Répondre

    0

    Y a-t-il une raison pour laquelle vous ne pouvez pas autoriser le compte 'NT AUTHORITY \ LocalService' à écrire dans le répertoire temporaire par défaut de Java?

    +0

    Même si cela fonctionne, cela semble être une étape ennuyeuse pour les utilisateurs qui installent votre logiciel. Est-ce que ce problème java utilise un java.io.tmpdir invalide ou un problème d'autorisations de système d'exploitation sur le répertoire tmp? – jnorris

    +0

    @jnorris En effet. Il existe des restrictions spécifiques lors de l'exécution en tant que service sous le compte LocalService de Windows, y compris le blocage de la plupart des appels réseau sortants ... mais il serait très inhabituel si java.io.tmpdir était défini sur un lecteur réseau. Donc je suis d'accord, c'est probablement une mauvaise valeur, et cela pourrait/devrait être réglé directement sur la ligne de commande pour être sûr (comme le suggère @crowne). – ewall

    0

    De http://www.rgagnon.com/javadetails/java-0484.html

    L'emplacement du répertoire utilisé pour stocker des fichiers temporaires est définie par la java.io.tmpdir propriété.
    La valeur par défaut peut être modifiée avec la ligne de commande utilisée pour lancer la machine virtuelle Java:

    java -Djava.io.tmpdir=C:\mydir myClass 
    

    ou, sous Windows, vous pouvez définir une valeur différente de la variable d'environnement TMP.

    Questions connexes