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

  FORUM HardWare.fr
  Programmation
  Java

  Répertoire courant de l'application [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Répertoire courant de l'application [résolu]

n°597074
yo c spi
Yo !
Posté le 26-12-2003 à 02:30:30  profilanswer
 

Salut,
 
Je cherche à récupérer le répertoire d'ou est installé mon appli mais ai quelques petits problèmes.
La commande
File f = new File("." );
renvoie le répertoire d'ou est lancée l'appli et non pas le répertoire ou elle est.
 
Enfin j'ai trouvé :  
String curdir = this.class.getResource("." ).getPath();
Mais autre problème : vu que je passe par la classe java
.net.URL, si mon chemin comportait des caractères spéciaux, ils sont remplacés et le chemin n'est donc plus valide.
Exemple : "c:\Mes Documents" devient "c:\Mes%20Documents"
ce qui est très génant (FileNotFoundException).
 
Les quelques topics que j'ai vu la dessus cse terminait par "Dieu seul sait ou est l'appli" (pas très encourageant).
 
Mais il y a forcément un moyen! Lequel?
 
Edit : j'ai oublié : JOYEUX NOEL !!!!!!!!!


Message édité par yo c spi le 09-01-2004 à 15:43:58
mood
Publicité
Posté le 26-12-2003 à 02:30:30  profilanswer
 

n°597101
darklord
You're welcome
Posté le 26-12-2003 à 09:26:08  profilanswer
 

yo c spi a écrit :

Mais il y a forcément un moyen! Lequel?


 
Le communiquer à ton appli via une config quelconque ou une propriété système. Il n'y a aucun moyen à priori de savoir où se trouve le répertoire home de l'appli.
 
La JVM n'a pas cette notion en standard. Elle s'occupe juste de savoir où se trouve les classes qu'elle doit utiliser.
 
Tu peux faire un truc du genre
 

Code :
  1. java -DTONAPPLI_HOME=c:/stuff/appli com.foo.MonMain args1 args2


 
et rechopper le directory en question dans l'appli
 

Code :
  1. String home = System.getProperty("TONAPPLI_HOME" );


 


Message édité par darklord le 26-12-2003 à 09:27:12
n°597235
the real m​oins moins
Posté le 26-12-2003 à 16:52:49  profilanswer
 

yo c spi a écrit :


String curdir = this.class.getResource("." ).getPath();
Mais autre problème : vu que je passe par la classe java
.net.URL, si mon chemin comportait des caractères spéciaux, ils sont remplacés et le chemin n'est donc plus valide.
Exemple : "c:\Mes Documents" devient "c:\Mes%20Documents"
ce qui est très génant (FileNotFoundException).


solution magique: lire la doc des classes qu'on utilise:  
1/ essayer http://java.sun.com/j2se/1.4.2/doc [...] rnalForm()
2/ si tu utilises une URL pour ouvrir un fichier, passer une URL au constructeur de ton stream et non un chemin sous forme de String.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597306
veryfree
Posté le 26-12-2003 à 21:07:55  profilanswer
 

String home = System.getProperty("user.dir" ); nerenvoi pas le rep d'ou est lancé l'appli ?
 
 
je test et je revien :o

n°597308
darklord
You're welcome
Posté le 26-12-2003 à 21:17:30  profilanswer
 

veryfree a écrit :

String home = System.getProperty("user.dir" ); nerenvoi pas le rep d'ou est lancé l'appli ?
 
 
je test et je revien :o


 
c'est pas ca la question [:kiki]

n°597310
veryfree
Posté le 26-12-2003 à 21:26:00  profilanswer
 

Citation :

Je cherche à récupérer le répertoire d'ou est installé mon appli mais ai quelques petits problèmes.


 
 
l'appli est lancé a partir de la ou elle est installé non [:tinostar]

n°597318
darklord
You're welcome
Posté le 26-12-2003 à 22:08:36  profilanswer
 

veryfree a écrit :

Citation :

Je cherche à récupérer le répertoire d'ou est installé mon appli mais ai quelques petits problèmes.


 
 
l'appli est lancé a partir de la ou elle est installé non [:tinostar]


 
bin non [:kiki]

n°597378
the real m​oins moins
Posté le 27-12-2003 à 02:06:15  profilanswer
 

veryfree a écrit :

String home = System.getProperty("user.dir" ); nerenvoi pas le rep d'ou est lancé l'appli ?

puisque manifestement darklord n'a pas su lire TA question et que tu n'as pas non plus su lire sa reponse: le user.dir renvoie le homedirectory du user qui a lancé l'appli ("/home/veryfree" ou "c:/documents and settings/veryfree", le plus souvent)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597380
the real m​oins moins
Posté le 27-12-2003 à 02:14:53  profilanswer
 

non, sinon:

Citation :

Pouet.class.getProtectionDomain().getCodeSource().getLocation();

permet de récuperer l'emplacement du fichier qui définit la classe Pouet, si ça peut aider. (...getLocation().getFile() pour recuperer le fichier)
à mon avis à n'utiliser qu'en cas d'extreme nécessité, et preferer un concept du style de celui decrit par darklord, à savoir passer un POUET_HOME en param a l'appli.


Message édité par the real moins moins le 27-12-2003 à 02:17:45

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597411
darklord
You're welcome
Posté le 27-12-2003 à 11:38:55  profilanswer
 

the real moins moins a écrit :

puisque manifestement darklord n'a pas su lire TA question et que tu n'as pas non plus su lire sa reponse: le user.dir renvoie le homedirectory du user qui a lancé l'appli ("/home/veryfree" ou "c:/documents and settings/veryfree", le plus souvent)


 
si si j'ai lu sa question, mais comme ca ne correspondait pas à la demande initiale, j'ai simplement dit que ct pas ça
 
bon ok j'aurai pu développer :o

mood
Publicité
Posté le 27-12-2003 à 11:38:55  profilanswer
 

n°597504
veryfree
Posté le 27-12-2003 à 14:54:31  profilanswer
 

the real moins moins a écrit :

puisque manifestement darklord n'a pas su lire TA question et que tu n'as pas non plus su lire sa reponse: le user.dir renvoie le homedirectory du user qui a lancé l'appli ("/home/veryfree" ou "c:/documents and settings/veryfree", le plus souvent)


 
ca c'est user.home :o

n°597510
R3g
fonctionnaire certifié ITIL
Posté le 27-12-2003 à 15:10:29  profilanswer
 

the real moins moins a écrit :

non, sinon:

Citation :

Pouet.class.getProtectionDomain().getCodeSource().getLocation();

permet de récuperer l'emplacement du fichier qui définit la classe Pouet, si ça peut aider. (...getLocation().getFile() pour recuperer le fichier)
à mon avis à n'utiliser qu'en cas d'extreme nécessité, et preferer un concept du style de celui decrit par darklord, à savoir passer un POUET_HOME en param a l'appli.

Le problème c'est que si le .class est dans un .jar, ça renvoie le path du .jar, ou le path a l'intérieur du .jar ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°597574
the real m​oins moins
Posté le 27-12-2003 à 17:11:38  profilanswer
 

R3g a écrit :

Le problème c'est que si le .class est dans un .jar, ça renvoie le path du .jar, ou le path a l'intérieur du .jar ?

le jar ou peut etre si t'es chanceux les deux (....machin.jar!com/pouet/truc/Muche)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597580
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 27-12-2003 à 17:16:01  profilanswer
 

the real moins moins a écrit :

le jar ou peut etre si t'es chanceux les deux (....machin.jar!com/pouet/truc/Muche)


Un point d'exclamation [:totoz] Et ça marche comment le jour où y a un ! dans le nom de fichier ? :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°597582
the real m​oins moins
Posté le 27-12-2003 à 17:17:59  profilanswer
 

Taiche a écrit :


Un point d'exclamation [:totoz] Et ça marche comment le jour où y a un ! dans le nom de fichier ? :D

i t'es chanceux j'ai dit. mais jcrois que c pas le cas, il donne que le .jar
le ! je sors ça d'un vague souvenir ou j'ai vu que ça s'écrivait comme ça pour je sais plus quoi.
et le ! etant apres l'extension .jar ça va pas se confondre avec un ! qui serait dans ton nom de fichier


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597583
darklord
You're welcome
Posté le 27-12-2003 à 17:21:27  profilanswer
 

the real moins moins a écrit :

i t'es chanceux j'ai dit. mais jcrois que c pas le cas, il donne que le .jar
le ! je sors ça d'un vague souvenir ou j'ai vu que ça s'écrivait comme ça pour je sais plus quoi.
et le ! etant apres l'extension .jar ça va pas se confondre avec un ! qui serait dans ton nom de fichier


 
et qu'est ce qui se passe si le nom de fichier comporte .jar! [:totoz]
 
[:neowen]

n°597584
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 27-12-2003 à 17:21:27  profilanswer
 

Mettre un fichier machin.jar! dans un classpath, ça marchera pas ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°597587
the real m​oins moins
Posté le 27-12-2003 à 17:24:21  profilanswer
 

darklord a écrit :


 
et qu'est ce qui se passe si le nom de fichier comporte .jar! [:totoz]
 
[:neowen]

ben c'est pas un jar valide :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597588
the real m​oins moins
Posté le 27-12-2003 à 17:24:47  profilanswer
 

Taiche a écrit :

Mettre un fichier machin.jar! dans un classpath, ça marchera pas ?

si mais il sera sans doute pas considéré comme un jar, au meme titre que si tu mets un moncul.jpg


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597589
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 27-12-2003 à 17:26:21  profilanswer
 

C'est pas drôle, alors :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°597610
R3g
fonctionnaire certifié ITIL
Posté le 27-12-2003 à 18:13:27  profilanswer
 

the real moins moins a écrit :

si mais il sera sans doute pas considéré comme un jar, au meme titre que si tu mets un moncul.jpg

et jar!jar.jar, c'est valide ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°597621
the real m​oins moins
Posté le 27-12-2003 à 18:27:13  profilanswer
 

euh c'est quoi la question à la base? si t'as envie de t'amuser à foutre des noms à la con à tes jars pour voir jusqu'ou tu peux aller, libre à toi hein :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°597626
R3g
fonctionnaire certifié ITIL
Posté le 27-12-2003 à 18:31:02  profilanswer
 

Taiche a écrit :


Un point d'exclamation [:totoz] Et ça marche comment le jour où y a un ! dans le nom de fichier ? :D

La question c'est ça. Après l'interet est je l'avoue un peu limité, c'est juste que ça semble un peu bizarre..


---------------
Au royaume des sourds, les borgnes sont sourds.
n°597634
the real m​oins moins
Posté le 27-12-2003 à 18:39:43  profilanswer
 

bah essaie si ça t'interesse [:spamafote]
déjà, je pense que la methode que j'ai donnée ne renvoie pas ce genre d'url, mais juste celle du jar, donc...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°598724
the real m​oins moins
Posté le 29-12-2003 à 22:05:34  profilanswer
 

he, au fait, veryfree avait raison avec user.home !


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°598808
darklord
You're welcome
Posté le 29-12-2003 à 23:21:03  profilanswer
 

the real moins moins a écrit :

he, au fait, veryfree avait raison avec user.home !


 
voui :jap:
meme si ca ne répond pas à la question


Message édité par darklord le 29-12-2003 à 23:21:20
n°598816
the real m​oins moins
Posté le 29-12-2003 à 23:25:49  profilanswer
 

bah ça renvoie l'endroit d'ou à été lancée la vm, donc bon, au pire tu fais un "/.." si tu sais que ton appli est lancée dans APPLI_HOME/bin, par exemple.
ça peut etre un méchanisme qui me semble correct, si on l'utilise en "failover" (?) d'une variable "APP_HOME" qui serait passée a l'appli (ie si la variable n'est pas passée, alors on utilise ce procédé par défaut)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°598822
veryfree
Posté le 29-12-2003 à 23:41:26  profilanswer
 

the real moins moins a écrit :

he, au fait, veryfree avait raison avec user.home !


 
[:yaisse]

n°598831
darklord
You're welcome
Posté le 29-12-2003 à 23:51:26  profilanswer
 

the real moins moins a écrit :

bah ça renvoie l'endroit d'ou à été lancée la vm, donc bon, au pire tu fais un "/.." si tu sais que ton appli est lancée dans APPLI_HOME/bin, par exemple.


 
[:kiki]
ouais si tu as le script qui va bien mais si tu peux lancer l'appli depuis n'importe quel rep ca va pas le faire :o

n°598834
the real m​oins moins
Posté le 29-12-2003 à 23:52:29  profilanswer
 

darklord a écrit :


 
[:kiki]
ouais si tu as le script qui va bien mais si tu peux lancer l'appli depuis n'importe quel rep ca va pas le faire :o

:??: :heink:
 
(si t'as un raccourci ou quoi ailleurs, tu crois que le user.home va etre dans le "repertoire de travail" de ce raccourci et non celui ou se trouve ce sur quoi le raccourci pointe?)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°598839
darklord
You're welcome
Posté le 30-12-2003 à 00:03:54  profilanswer
 

si il ne fait pas un cd APPLI_HOME/bin explicite, oui.

n°598849
the real m​oins moins
Posté le 30-12-2003 à 00:15:05  profilanswer
 

ha, crotte :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°600567
haricovert
Posté le 02-01-2004 à 09:49:06  profilanswer
 

http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
 
Voir le code posté par "phenixl"

n°604768
yo c spi
Yo !
Posté le 07-01-2004 à 14:41:18  profilanswer
 

Je vais tester tout ca et je vous redis.
Merci, y'a pas mal de trucs.
Bonne année !

n°606564
yo c spi
Yo !
Posté le 09-01-2004 à 15:43:15  profilanswer
 


Ce code est excellent et pourra etre bien utile.
 
Merci à tous.

mood
Publicité
Posté le   profilanswer
 


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

  Répertoire courant de l'application [résolu]

 

Sujets relatifs
[MySQL] comment configurer ma base pour mon projet [resolu]probleme d'installation de jbuilder9 [résolu]
Choix d'un répertoire avec JFileChooser [resolu]Source du clipboard. De quelle application viennent les données ?
[Java] Linux, JInternalFrame, application GTK comme Gaim...[RESOLU] Save JPanel As ?
Exercice d'algo [probleme resolu par Tentacle, algo p2 poste par Giz]Image [inline], Mise à l'échelle [résolu] et Propagation de paramètres
[resolu]preg_replace petit soucis 
Plus de sujets relatifs à : Répertoire courant de l'application [résolu]


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