J'ai besoin d'un petit coup de main parce que je m'y perds un peu dans les
dénominations entre URI, URL, File.
Je dois utiliser un objet qui prend en paramètre un File. Ce fichier que
j'utilise se trouve dans le répertoire classes/conf/monFichier.xml . Tout
ceci se retrouve ensuite dans un .war
j'ai lu quelque part que c'était mieux de passer par des URI (dont je ne
suis pas sûr d'avoir bien compris l'intérêt). voilà ce que je fais :
URI fichierConfURI=new URI("/conf/classes/monFichier.xml");
File fichierConfig= new File(fichierConfURI);
J'ai une exception qui est levée, qui me dit "URI is not absolute" .
Et quand j'essaye de passer par un URL (qui elle est absolue, car quand je
débugue, je vois qu'elle vaut c:\program files\etc), et que je passe cette
URL pour construire mon URI, j'ai la même erreur.
Si quelqu'un a un début de solution sur ce problème ça m'intéresse beaucoup,
parce que je n'ai rien trouvé sur l'erreur "URI is not absolute" sur google
C'est un stream, il faut le lire en appelant read() dessus pour obtenir les données qu'il y a dans la resource vers laquelle il pointe. Il ne se remplit magiquement avec le contenu de votre fichier ...
Vinz wrote:
Comment le lisez-vous ?
par le debugger d'Eclipse
C'est un stream, il faut le lire en appelant read() dessus pour obtenir
les données qu'il y a dans la resource vers laquelle il pointe. Il ne se
remplit magiquement avec le contenu de votre fichier ...
C'est un stream, il faut le lire en appelant read() dessus pour obtenir les données qu'il y a dans la resource vers laquelle il pointe. Il ne se remplit magiquement avec le contenu de votre fichier ...
Vinz
merci à tous les deux, je m'en suis sorti ! ça m'a pris l'après-midi, mais en bidouillant, je m'en suis sorti ! j'ai utilisé le getClass().getResourceAsStream() et en essayant plusieurs trucs j'ai réussit ! Je vais pouvoir partir en week-end l'esprit tranquille ;-)
merci encore
"Farid" a écrit dans le message de news:40a4e434$0$31384$
hum. bizzare que ca ne marche pas. c'est ce que j'utilises dans tous mes test unitaire pour charger des fichiers utilises dans ces test. mais c'est vrai que je n'ai pas d'espace dans le chemin, qui est un problem
CLASSIQUE avec java...
2 solutions: la premiere passe comme dans mon code par String f = url.getFile(); et replace tous les sequence %20 par des veritable espace.
la deuxieme solution comme te l'indique Jean Bernard, passe par un getResourceAsStream()
Puisque de toute facon tu veut travailler avec un xml existant, normalement
les outils te permettant de faire du xml, devrait aussi donner access au fichier xml via des inputstream. voici un bout de code que j'utilise pour recuperer un access (en lecture) sur un fichier contenu dans mon jar.
ClassLoader cl = MaClass.class.getClassLoader(); InputStream is = cl.getResourceAsStream("conf/monFichier.xml");
En esperant que sa aidera.
PS; entre nous, il est toujours recommende de ne pas installer des programmes java genre IDE et server dans des repertoires avec des espace. ca
et pourtant, quand je crée un fichier à partir de ça, le fichier n'existe
pas. C'est quand même pas à cause de l'espace entre "program files", ou du
sens du séparateur de répertoire ??
"Farid" a écrit dans le message de news:40a4c24f$0$31383$
Essaye ca en passant la string "/conf/monFichier.xml"
public File getSrcFile(String res) {
URL url = this.getClass().getResource(res); if (url == null) { throw new RuntimeException("Sorry - document not found:" + res); } String f = url.getFile();
return new File(f); }
"Vinz" wrote in message news:c82a8c$rib$
salut à tous,
J'ai besoin d'un petit coup de main parce que je m'y perds un peu dans
les
dénominations entre URI, URL, File.
Je dois utiliser un objet qui prend en paramètre un File. Ce fichier que
j'utilise se trouve dans le répertoire classes/conf/monFichier.xml . Tout
ceci se retrouve ensuite dans un .war
j'ai lu quelque part que c'était mieux de passer par des URI (dont je
ne
suis pas sûr d'avoir bien compris l'intérêt). voilà ce que je fais :
URI fichierConfURI=new URI("/conf/classes/monFichier.xml"); File fichierConfig= new File(fichierConfURI);
J'ai une exception qui est levée, qui me dit "URI is not absolute" .
Et quand j'essaye de passer par un URL (qui elle est absolue, car quand
je
débugue, je vois qu'elle vaut c:program filesetc), et que je passe cette
URL pour construire mon URI, j'ai la même erreur.
Si quelqu'un a un début de solution sur ce problème ça m'intéresse beaucoup,
parce que je n'ai rien trouvé sur l'erreur "URI is not absolute" sur google
merci d'avance
-- Vinz
merci à tous les deux, je m'en suis sorti ! ça m'a pris l'après-midi, mais
en bidouillant, je m'en suis sorti ! j'ai utilisé le
getClass().getResourceAsStream() et en essayant plusieurs trucs j'ai réussit
!
Je vais pouvoir partir en week-end l'esprit tranquille ;-)
merci encore
"Farid" <Farid@somewhere.com> a écrit dans le message de
news:40a4e434$0$31384$626a14ce@news.free.fr...
hum. bizzare que ca ne marche pas.
c'est ce que j'utilises dans tous mes test unitaire pour charger des
fichiers utilises dans ces test.
mais c'est vrai que je n'ai pas d'espace dans le chemin, qui est un
problem
CLASSIQUE avec java...
2 solutions:
la premiere passe comme dans mon code par
String f = url.getFile();
et replace tous les sequence %20 par des veritable espace.
la deuxieme solution comme te l'indique Jean Bernard,
passe par un getResourceAsStream()
Puisque de toute facon tu veut travailler avec un xml existant,
normalement
les outils te permettant de faire du xml, devrait aussi donner access au
fichier xml via des inputstream.
voici un bout de code que j'utilise pour recuperer un access (en lecture)
sur un fichier contenu dans mon jar.
ClassLoader cl = MaClass.class.getClassLoader();
InputStream is = cl.getResourceAsStream("conf/monFichier.xml");
En esperant que sa aidera.
PS; entre nous, il est toujours recommende de ne pas installer des
programmes java genre IDE et server dans des repertoires avec des espace.
ca
pose TOUJOURS plein de problem !
Farid.
"Vinz" <vfuchs@hotmail.com> wrote in message
news:c82ig4$u0$1@s1.read.news.oleane.net...
merci à tous les deux, je m'en suis sorti ! ça m'a pris l'après-midi, mais en bidouillant, je m'en suis sorti ! j'ai utilisé le getClass().getResourceAsStream() et en essayant plusieurs trucs j'ai réussit ! Je vais pouvoir partir en week-end l'esprit tranquille ;-)
merci encore
"Farid" a écrit dans le message de news:40a4e434$0$31384$
hum. bizzare que ca ne marche pas. c'est ce que j'utilises dans tous mes test unitaire pour charger des fichiers utilises dans ces test. mais c'est vrai que je n'ai pas d'espace dans le chemin, qui est un problem
CLASSIQUE avec java...
2 solutions: la premiere passe comme dans mon code par String f = url.getFile(); et replace tous les sequence %20 par des veritable espace.
la deuxieme solution comme te l'indique Jean Bernard, passe par un getResourceAsStream()
Puisque de toute facon tu veut travailler avec un xml existant, normalement
les outils te permettant de faire du xml, devrait aussi donner access au fichier xml via des inputstream. voici un bout de code que j'utilise pour recuperer un access (en lecture) sur un fichier contenu dans mon jar.
ClassLoader cl = MaClass.class.getClassLoader(); InputStream is = cl.getResourceAsStream("conf/monFichier.xml");
En esperant que sa aidera.
PS; entre nous, il est toujours recommende de ne pas installer des programmes java genre IDE et server dans des repertoires avec des espace. ca