OVH Cloud OVH Cloud

BufferedReader + fichier jar

4 réponses
Avatar
Agnès Bénard
Bonjour,

Voici mon problème. J'ai un programme qui ouvre un fichier en lecture a
l'aide de la commande
bufferedReader :
BufferedReader entree = new BufferedReader(new FileReader("xxx.dat"));.
Ceci fonctionne très bien.

Le problème est lorsque je crée un fichier jar contenu les classes et le
fichier texte, le programme
ne trouve pas le fichier xxx.dat.

Comment puis-je résoudre cela ?

Merci

4 réponses

Avatar
ScoobyCed
Bonjour,


Bonjour

J'ai un programme qui ouvre un fichier en lecture :
BufferedReader entree = new BufferedReader(new FileReader("xxx.dat"));.
Ceci fonctionne très bien.
Le problème est lorsque je crée un fichier jar contenu les classes et le
fichier texte, le programme
ne trouve pas le fichier xxx.dat.
Comment puis-je résoudre cela ?


Il s'agit surement d'un probleme de classpath ( c'est toujours le classpath
en JAVA :)).
Sur ta ligne de commande, si tu fais:
$JAVA_HOME/bin/java -cp tonJar.jar:$CLASSPATH foo.bar.tonProg
et que le fichier xxx.dat est dans /usr/local/data/xxx.dat ( par example)
alors tu dois ajouter:
$JAVA_HOME/bin/java -cp tonJar.jar:/usr/local/data:$CLASSPATH
foo.bar.tonProg
^^^^^^^^^^^
Merci


De rien.

ScoobyCed
-------------
JScooby-Snack

Avatar
Alexandre Touret
Logique....
met le chemin complet (absolu) de fichier .dat

AT

Agnès Bénard wrote:
Bonjour,

Voici mon problème. J'ai un programme qui ouvre un fichier en lecture a
l'aide de la commande
bufferedReader :
BufferedReader entree = new BufferedReader(new FileReader("xxx.dat"));.
Ceci fonctionne très bien.

Le problème est lorsque je crée un fichier jar contenu les classes et le
fichier texte, le programme
ne trouve pas le fichier xxx.dat.

Comment puis-je résoudre cela ?

Merci




Avatar
Laurent Bossavit
BufferedReader entree = new BufferedReader(new FileReader("xxx.dat"));.
Ceci fonctionne très bien.

Le problème est lorsque je crée un fichier jar contenu les classes et le
fichier texte, le programme ne trouve pas le fichier xxx.dat.



On peut utiliser Class.getResourceAsStream() pour accéder aux fichiers
embarqués dans les ".jar". Attention, la notion de "répertoire courant"
n'est plus la même dans ce cas.

Laurent
http://bossavit.com/


Avatar
Agnès Bénard
Merci. En utilisant this.getClass().getResourceAsStream("xxx.dat") tout
fonctionne.


"Laurent Bossavit" a écrit dans le message
news:
BufferedReader entree = new BufferedReader(new
FileReader("xxx.dat"));.



Ceci fonctionne très bien.

Le problème est lorsque je crée un fichier jar contenu les classes et
le



fichier texte, le programme ne trouve pas le fichier xxx.dat.



On peut utiliser Class.getResourceAsStream() pour accéder aux fichiers
embarqués dans les ".jar". Attention, la notion de "répertoire courant"
n'est plus la même dans ce cas.

Laurent
http://bossavit.com/