Déterminer le chemin de mon application. [Résolu]

jasonred2 4 Messages postés lundi 31 octobre 2005Date d'inscription 22 novembre 2005 Dernière intervention - 9 nov. 2005 à 17:23 - Dernière réponse : jasonred2 4 Messages postés lundi 31 octobre 2005Date d'inscription 22 novembre 2005 Dernière intervention
- 10 nov. 2005 à 17:08
Salut tout le monde,
j'ai un souci qui me tarabuste les neurones.

Je suis débutant en java et suis en train de créer une appli pour ma boîte. Je voudrais y mettre une petite subtilité :

J'ai créé un fichier annexe qui contient des informations pour la configuration .
Je voudrais pouvoir me simplifier la vie lors du déploiement de l'application c'est à dire que le fichier de configuration et l'appli seront dans un dossier, que celui ci pourra être implanté n'importe où et que le tout doit fonctionner quand même.

La solution serait que l'appli "connaisse" par elle même ou se situe le dossier parent, donc de pouvoir déterminé le chemin complet du dossier.

J'ai essayer de bidouiller un bout de classe avec la fonction getAbsolutePath, mais cela me renvoi le chemin du jre ( genre C:\program files\java\jre1.5.0_04\bin\monappli ) alors que cela devrait renvoyer, si cela fonctionnait, D:\InstallFolder\monappli.

J'ai juste besoin de cela, le reste ne devrait pas poser de problème.

Merci d'avanec à aux bonnes âmes qui voudront aider un pov'noobie comme moi.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
jasonred2 4 Messages postés lundi 31 octobre 2005Date d'inscription 22 novembre 2005 Dernière intervention - 10 nov. 2005 à 17:02
3
Merci
Merci pour tout, chers amis, mais le problème est résolu avec une toute autre fonction.

Cela n'avait malheureusement rien à voire avec le chemin de mon application - seek duchesb, je sais encore ou je fourre mes JAR, j'ai dit que j'étais débutant en java, pas débutant en informatique, lol :p!!!

Je poste d'ailleurs le petit bout de code qui m'a permis de m'en sortir, si cela intéresse quelqu'un :


String path = getClass().getName() + ".class";
URL url = getClass().getResource(path);

try
{
path = URLDecoder.decode(url.toString(), "UTF-8");
} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();
}
// suppression de la classe ou du jar du path de l'url
int index = path.lastIndexOf("/");
path = path.substring(0, index);
if (path.startsWith("jar:file:"))
{
// suppression de jar:file: de l'url d'un jar
// ainsi que du path de la classe dans le jar
index = path.indexOf("!");
path = path.substring(10, index);
}
else
{
path = path.substring(6, path.length());
Package pack = getClass().getPackage();
if (null != pack)
{
String packPath = pack.toString().replace('.', '/');
{
path = path.substring(0, (path.length() - packPath.length()));
}
}
}

Merci jasonred2 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de jasonred2
cs_ducheseb 344 Messages postés mardi 18 mai 2004Date d'inscription 23 juin 2006 Dernière intervention - 9 nov. 2005 à 17:46
0
Merci
Es-tu sûr que le chemin où se trouve ton appli au moment où tu l'exécutes est bien D:\InstallFolder\monappli.

J'ai plutôt l'impression que ton appli s'exécute depuis C:\program files\java\jre1.5.0_04\bin\monappli .

Donc si tu installe ton appli dans un autre répertoire et que tu l'exécutes, tu devrais obtenir le bon chemin.
Commenter la réponse de cs_ducheseb
bastet1978 54 Messages postés lundi 29 septembre 2003Date d'inscription 4 décembre 2005 Dernière intervention - 10 nov. 2005 à 13:26
0
Merci
Salut, j'ai eu le même souci:

String directionLocale = new String(System.getProperty("user.dir"));

directionLocale est alors le dossier au niveau juste au dessus de ton appli.



Admettons un dossier MONAPPLI dans lequel se trouve le Main.class et un
dossier images, il faudra juste tapper : directionLocale/images/truc.png

----
OS: Ubuntu 5.10(linux)
jdk : 1.5.0
MysqlConnector/J: 3.2
mysql Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i486)
----
Commenter la réponse de bastet1978
bastet1978 54 Messages postés lundi 29 septembre 2003Date d'inscription 4 décembre 2005 Dernière intervention - 10 nov. 2005 à 13:29
0
Merci
PS: évite de mettre des \ dans ton path, java est portable, c'est
domage de casser la portabilité pour un truc si bête. Windows suporte
les deux, Unix un seul : / car \ est un echappement (comme en prog)

----
OS: Ubuntu 5.10(linux)
jdk : 1.5.0
MysqlConnector/J: 3.2
mysql Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i486)
----
Commenter la réponse de bastet1978
jasonred2 4 Messages postés lundi 31 octobre 2005Date d'inscription 22 novembre 2005 Dernière intervention - 10 nov. 2005 à 17:08
0
Merci
Merci pour ces petits rappels bastet1978, c'est vrai que j'ai un peu tendance à coder à la bourine, tellement impatient que je suis et voulant tester de suite si ça fonctionne.

Je prends pas assez le temps de vérifier les petits détails -- HONTE SUR MOI --!

Merci pour votre aide et surtout pour vos réponses véloces et diligentes.
Commenter la réponse de jasonred2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.