Bonjour,

Je rencontre un soucis lors de la copie d'un fichier. Il s'agit d'un fichier texte tout ce qu'il y a de plus banal (petit fichier de properties perso). Je veux que mon application copie ce fichier, qui est situé dans l'application, sur la machine client.

Là où cela se corse, c'est que j'aimerais dans la mesure du possible avoir ce comportement, que mon application soit lancée depuis Eclipse ou bien depuis un jar exécutable.

Voici ce que je fais actuellement :

Code maClasse.java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 
File fichierClient = new File("pathComplet/monFichier.properties");
if (!fichierClient.isFile()) {
     // On ne copie le fichier que s'il n'est pas déjà présent
     sauvegarderFichier("pathComplet/monFichier.properties", 
           maClass.class.getResourceAsStream("pathCompletDansJar/monFichier.properties"));
}
 
 
// Et la fonction 'sauvegarderFichier' :
public static void sauvegarderFichier(String _nomFichier,
			InputStream _inputStream) throws IOException, FileNotFoundException {
     FileOutputStream fos = new FileOutputStream(_nomFichier);
     try {
          // On utilise un tableau comme buffer
          byte[] buf = new byte[8192];
          // Et on utilise une variable pour connaitre le nombre
          // de bytes lus, et donc le nombres qu'il faudra ecrire :
          int longueur;
 
          while ((longueur = _inputStream.read(buf)) >= 0) {
               fos.write(buf, 0, longueur);
          }
     } finally {
         // On ferme le fichier quoi qu'il arrive :
        fos.close();
     }
}

(la méthode sauvegarderFichier provient de cette discussion).

L'arborescence de mon projet est la suivante :

- monProjet
- src
- properties
- monFichier.properties
- lib

De ce fait, les deux chemins utilisés dans le code précédent sont de cet ordre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
C:\Documents and Settings\nomUser\monProjet\properties\monFichier.properties
D:\Programmes\Eclipse\workspace\monProjet\properties\monFichier.properties
En l'état, j'ai bien la création du fichier, mais avec rien dedans.
J'ai essayé plusieurs solutions, mais dans tous les cas, cela ne fonctionnait pas depuis le jar.

Mako.