Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
949 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Classe File et deleteOnExit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classe File et deleteOnExit

n°532424
LetoII
Le dormeur doit se réveiller
Posté le 06-10-2003 à 13:57:43  profilanswer
 

Je bosse sous win2k et winxp et je pensé utiliser cette méthode pour me débarasser de mes fichiers temporaires après la fin de l'application. Or les dits fichiers ne sont pas effacés malgrès l'appel de deleteOnExit. Y a une raison particulière, c un bug connu, ca marche sous d'autres systèmes?
 
Pour info j'utilise ça dans deux contextes différents, dans le premier cas je crée un ficheir temporaire pour une opération d'entrée sortie, je le ferme et je m'en occupe plus jusqu'à la fin de l'appli, vu que deleteOnExit marche pas j'ai solutionné le pb avec un simple delete. Dans le 2eme cas c pour effacer une dll temporaire contenant du code natif, donc là je peux pas la virer tant que la jvm tourne vu que je peux potentiellement en avoir besoin.
 
Une idée?
 
Un chtit bout de code ou j'essaye d'utiliser deleteOnExit:
 

Code :
  1. String libraryName = System.mapLibraryName(NativeLibraryBaseName);
  2.         //Récupération du nom de la bibliothéque.
  3.         URL libraryURL = ClassLoader.getSystemResource(libraryName);
  4.         //Récupération du chemin de la bibliothéque.
  5.         try
  6.         {
  7.            
  8.    //Extraction de la bibliothèque.
  9.                 File tempLibrary = File.createTempFile(libraryName, "" );
  10.                 OutputStream output = new FileOutputStream(tempLibrary);
  11.                 InputStream input = libraryURL.openStream();
  12.                 byte[] buffer = new byte[1024];
  13.                 int length = input.read(buffer);
  14.                 while (length >= 0)
  15.                 {
  16.                     output.write(buffer, 0, length);
  17.                     length = input.read(buffer);
  18.                 }
  19.                 input.close();
  20.                 output.close();
  21.                 tempLibrary.deleteOnExit();
  22.    //Chargement de la bibliothèque.
  23.                 System.load(tempLibrary.getPath());
  24.            
  25.         }
  26.         catch (IOException e)
  27.         {
  28.             e.printStackTrace();
  29.             throw new UnsatisfiedLinkError(e.getLocalizedMessage());
  30.         }
  31.         catch (UnsatisfiedLinkError e)
  32.         {
  33.             System.err.println("Impossible de charger la bibliothéque dynamique: " + libraryName);
  34.             throw new Error(e);
  35.         }


 


Message édité par LetoII le 06-10-2003 à 14:04:07

---------------
Le Tyran
mood
Publicité
Posté le 06-10-2003 à 13:57:43  profilanswer
 

n°532467
the real m​oins moins
Posté le 06-10-2003 à 14:42:26  profilanswer
 

ptet justement parce que la jvm l'utilise qu'il ne la delete pas? [:meganne]
 
tu peux pas unloader la librairie de la meme façon que tu la loades?

n°532550
LetoII
Le dormeur doit se réveiller
Posté le 06-10-2003 à 16:04:01  profilanswer
 

the real moins moins a écrit :

ptet justement parce que la jvm l'utilise qu'il ne la delete pas? [:meganne]
 
tu peux pas unloader la librairie de la meme façon que tu la loades?
 


 
En théorie, quand la jvm s'arréte elle utilise plus la bibliothéque, donc elle peut la supprimmer, en même temps il est possible que windows veule pas vu qu'il va la garder un moemnt en mémoire, j'avais pas pensé à ça  [:ddr555]  
 
Enfin ça explqiue pas pkoi ça marche pas dans la cadre plus con du fichier temporaire dans lequel j'écrit, que je ferme et que j'utilise plus.


---------------
Le Tyran
n°532573
the real m​oins moins
Posté le 06-10-2003 à 16:39:56  profilanswer
 

ben euh si peut etre que justement...
vu que ton fichier temporaire windows s'en contrefout...

n°532578
LetoII
Le dormeur doit se réveiller
Posté le 06-10-2003 à 16:42:05  profilanswer
 

the real moins moins a écrit :

ben euh si peut etre que justement...
vu que ton fichier temporaire windows s'en contrefout...
 


 
... pkoi n'est il pas effacé par la JVM après un appel à deleteOnExit?


---------------
Le Tyran
n°532579
the real m​oins moins
Posté le 06-10-2003 à 16:42:23  profilanswer
 

sinon essaie de debugger pour voir ce qu'il se passe?[:spamafote]

n°532581
the real m​oins moins
Posté le 06-10-2003 à 16:42:48  profilanswer
 

ha euh je croyais que ton 1er fichier etait effacé :D

n°532585
LetoII
Le dormeur doit se réveiller
Posté le 06-10-2003 à 16:43:52  profilanswer
 

the real moins moins a écrit :

ha euh je croyais que ton 1er fichier etait effacé :D


 
Nan, jamais réeussi à la faire fonctionner cette méthode  [:spamafote]


---------------
Le Tyran
n°532604
darklord
You're welcome
Posté le 06-10-2003 à 16:53:01  profilanswer
 

[:drapal]


---------------
Just because you feel good does not make you right

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Classe File et deleteOnExit

 

Sujets relatifs
[PHP] Generer le code html avec une classeProblem d algo : ordonner une file en utilisant des fct file (push ..)
[C++] je debute. classe amie. classe abstraite, heritage.[ Delphi ] Copier une instance de classe
classe socket std ?pb de classe qui contient un pointeur vers une autre et inversement...
[php]variables statiques dans une classe(win32) classe dans une dll
Probleme d'importation de classeIntercerpter des messages depuis une sous-classe de TComponent [resolu
Plus de sujets relatifs à : Classe File et deleteOnExit


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR