IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Droit en écriture sur fichier temporaire


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut Droit en écriture sur fichier temporaire
    Bonjour

    Je tente tant bien que mal d'utiliser createTempFile sur Unix.

    Premier essai, le plus simplement du monde.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String extension = ".sh";
    File script = File.createTempFile("aceScript", extension);
    Ca marche sous windows. Mais sous unix (Red Hat EL) :
    java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.checkAndCreate(Unknown Source)
    at java.io.File.createTempFile(Unknown Source)
    at java.io.File.createTempFile(Unknown Source)
    at com.axway.ace.Settings.createScript(Unknown Source)
    at com.axway.ace.AceServer.prepareCommandScript(Unknown Source)
    at com.axway.ace.io.console.ServerConsole.commandStart(Unknown Source)
    at com.axway.ace.io.console.ServerConsole.doMain(Unknown Source)
    at com.axway.ace.io.console.ServerConsole.main(Unknown Source)
    Okayyy. Je cherche un peu je lis quelquepart que la création de fichier temporaire est pas toujours au point. Version 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
    	script = File.createTempFile("aceScript", extension);
    } catch (IOException e) {
    	File tempDir = new File(System.getProperty("java.io.tmpdir"));
    	script = new File(tempDir, "aceScript"+new Date().getTime()+extension);
    }
    Et encore boum

    java.io.FileNotFoundException: /tmp/aceScript1261054991473.sh (Permission denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at com.axway.ace.Settings.createScript(Unknown Source)
    at com.axway.ace.AceServer.prepareCommandScript(Unknown Source)
    at com.axway.ace.io.console.ServerConsole.commandStart(Unknown Source)
    at com.axway.ace.io.console.ServerConsole.doMain(Unknown Source)
    at com.axway.ace.io.console.ServerConsole.main(Unknown Source)
    Je suppose que l'OS est connement installé, merci le support IT, et que Java ne pourra pas m'accorder les droits de lecture/écriture sur le fichier ou les dossiers.

    Quelqu; un a une autre solution que créer un répertoire temporaire et me démerder avec?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    C'est simple : je pense que l'utilisateur qui lance java n'a pas le droit d'écrire dans le répertoire /tmp, aussi curieux que ça puisse paraitre.
    En positionnant la variable java.io.tmpdir au lancement de la jvm, ça devrait le faire :
    java -Djava.io.tmpdir=/home/mytmp ...
    Evidemment, faut que ait le droit d'écrire dans ce répertoire

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    C'est à peut près ce que j'ai fait : j'ai pris le parti de me créer un répertoire temporaire, que je référence dans mon singleton "settings" pour qu'il soit accessible de partout dans mon api, et que je nettoie donc en fin d'exécution.

    Au moins je suis sur que ça marchera, y comprit sur AIX, HP-UX & autres OS aux moeurs méconnus...

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2010, 14h52
  2. [Toutes versions] Problème de droit d'écriture sur fichier word reseau
    Par alex_m94 dans le forum Word
    Réponses: 9
    Dernier message: 03/06/2009, 17h33
  3. Droit en écriture sur des fichiers
    Par HULK dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/10/2007, 10h09
  4. Tester les droits en écriture sur une table en VBA ?
    Par yerome60 dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 21h43
  5. droits en écriture sur le réseau
    Par julien20vt dans le forum MFC
    Réponses: 4
    Dernier message: 25/03/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo