Retrouver le répertoire de ma classe principale - Java - Programmation
Marsh Posté le 17-03-2003 à 16:33:07
Essaye :
File f = new File("." );
System.out.println(f.getAbsolutePath());
EDIT: ooops, rien compris à la question le Krosso...
Marsh Posté le 17-03-2003 à 16:35:15
Bon j'ai pas encore essayé mais à mon avis sa va me répondre :
D:\Temp\ vu que je la lance depuis mon D:\Temp\ cé donc mon répertoire courant D'autres idées
Marsh Posté le 17-03-2003 à 16:54:06
haRICOvert a écrit : Bon j'ai pas encore essayé mais à mon avis sa va me répondre : |
Je confirme !
Marsh Posté le 17-03-2003 à 17:00:29
ReplyMarsh Posté le 17-03-2003 à 17:01:58
Je me souviens plus, mais System.getProperty("user.dir" ), ça fait pareil ?
Marsh Posté le 17-03-2003 à 17:16:34
ReplyMarsh Posté le 17-03-2003 à 18:02:21
J'comprend pas bien ce que ça contient cette propriété "user.dir".
On peut très bien exéuter des classes qui sont dans des répertoires différents...
Marsh Posté le 17-03-2003 à 23:04:40
Predicator a écrit : ça doit être le répertoire du main() exécuté je pense... |
c'est ca. C'est le répertoire dans lequel tu démarres la virtual machine
Marsh Posté le 17-03-2003 à 23:57:16
DarkLord a écrit : |
c'est pas ça qu'ils cherchent alors...
Marsh Posté le 18-03-2003 à 00:03:13
the real moins moins a écrit : c'est pas ça qu'ils cherchent alors... |
bin nan justement
Marsh Posté le 18-03-2003 à 00:07:10
Ouais effectivement spa ça
Je m'étais deja poser la question en fait :
Comment une appli Java peut connaitre son repertoire d'installation, et en fait, je m'eatis dit qu'il fallait une procedure d'installation pour stocker le chemin du bin ... Par exemple, JEdit a un launcher qui permet de configurer tout ça ... a suivre
Marsh Posté le 18-03-2003 à 00:11:04
bobuse a écrit : Ouais effectivement spa ça |
ben théoriquement un jar s'autosuffit nan?
apres s'il a besoin de fichiers externes, bah, path relatif, il trouve un fichier de config, et voila.
je vois pas bien l'interet de connaitre son emplacement
Marsh Posté le 18-03-2003 à 07:45:06
the real moins moins a écrit : ben théoriquement un jar s'autosuffit nan? |
parce que dans une appli tu ne peux pas tout mettre dans un jar tout simplement. Et pour le coup du path relatif ca suppose que tu as une procédure d'installation qui met à jour tes fichiers de conf, ce qui n'est pas trivial.
pour eConf par exemple, j'utilise nullsoft installer pour windows qui lance un petit script qui met à jour les fichiers de config (log4j, etc). Pour linux , un script bash suffit (bientot rpm )
Marsh Posté le 18-03-2003 à 09:31:52
DarkLord a écrit : |
ha d'accord
merci d'avoir confirmé
Marsh Posté le 18-03-2003 à 12:07:04
DarkLord a écrit : |
ben tu as un fichier resources dans ton jar qui donne le nom et l'emplacement du fichier de config (relatif ou du genre user.home/.monappli/myconf.ini) et voili voilou. Dans ce fichier de config soit t'as des paths qui seront relatif soit absolus, je vois pas ce qu'irait y foutre une procedure d'install qui modifierais ce fichier
Marsh Posté le 20-03-2003 à 01:47:18
Bon j'ai code ca a l'arrache et je suis creve donc un peu d'indulgence...
Pour l'utiliser il faut avoir le nom de la classe : "package.souspackage.NomClasse". La methode itere sur le classpath et cherche si une classe avec le nom donne se trouve dans le classpath, si oui, le chemin est renvoye, si rien n'est trouve elle lance une ClassNotFoundException
Code :
|
Bye
Marsh Posté le 20-03-2003 à 01:58:02
(tu pourrais au moins faire qqchose quand tu catches Exception là )
enfin, super quand meme
Marsh Posté le 20-03-2003 à 03:11:08
the real moins moins a écrit : |
j'avais la flemme
Marsh Posté le 20-03-2003 à 08:53:16
Ouais, bravo.
Par contre, à mon avis, 'faut pas être trop pressé. Suffit qu'on ai quelques grosses lib dans le classpath, et le parcours peut vite devenir très très long...
Marsh Posté le 20-03-2003 à 10:03:13
El_gringo a écrit : Ouais, bravo. |
rabat-joie
Marsh Posté le 20-03-2003 à 10:11:59
DarkLord a écrit : |
rabat-rabat-joie
car dans les faits, il a pas tort
en tout cas, bon boulot cette classe
Marsh Posté le 20-03-2003 à 10:40:40
Citation : en tout cas, bon boulot cette classe |
stune méthode
Mais en effet, merci bcp, ça va mez servir pas plus tard que maintenant.
Marsh Posté le 20-03-2003 à 10:51:51
El_gringo a écrit : Ouais, bravo. |
Si c'est ce qu'il veut je ne vois pas d'autre methode...
Quant a la scalabilite de la chose as tu essaye ?
Marsh Posté le 20-03-2003 à 11:46:57
ReplyMarsh Posté le 20-03-2003 à 11:57:52
D'ailleurs, ca existe un site de ressources Java ou on pourrait trouver/deposer des trucs de ce genre ?
Marsh Posté le 02-01-2004 à 15:49:02
bobuse a écrit : D'ailleurs, ca existe un site de ressources Java ou on pourrait trouver/deposer des trucs de ce genre ? |
hachaifaire?
Marsh Posté le 17-03-2003 à 16:31:32
Admettons que j'ai une application "abc.class" stocké dans mon C:\Temp
Si je la lance depuis mon D:\Temp avec la ligne de commande
suivante :
java C:\Temp\abc
Comment retrouver depuis mon application dans quel répertoire elle est stocké (cad retrouver mon C:\Temp)
Merci de vos réponses
EDIT : Je vais poser la question autrement, comment afficher à l'écran le path de ma classe principale cad C:\Temp\abc.class alors que je l'ai exécuté depuis un autre répertoire (le répertoire courant n'est donc pas ce C:\Temp)
Message édité par haricovert le 17-03-2003 à 16:44:20