IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Détection du répertoire de travail


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut Détection du répertoire de travail
    bonjour,
    j'ai une question toute bete. Je voudrais que mon programme détecte à son lancement, le repertoire où il se trouve et en récupère le chemin. Je souhaite cela, car mon programme viens lire un fichier de configuration présent dans le même répertoire que lui. Et comme le repertoire en question risque d'etre souvent déplacer, je voudrais pouvoir dire au prog que le fichier de config est situé au même endroit que lui plutôt qu'écrire en dur le chemin du-dit fichier.

    Est-ce réalisable? et comment?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    en fait j'ai trouvé la solution tout seul comme un grand!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fp = new File("");
    System.out.println("Fichier racine :"+fp.getAbsolutePath());
    10h du mat' j'devais pas encore etre bien réveillé au moment de la question.

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Pourquoi tu ne fais pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File config = new File("Configuration.txt");
    là il ira directement sur le fichier.

    par ailleurs, je te recommandes plutôt un fichier properties (ça règle plein de trucs après)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    grosso modo , j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Properties properties = new Properties();                   // création des propriétés
                        try{
                            fp = new File("");
                            frp = new FileInputStream(fp.getAbsolutePath()+s+"Geli_config.txt"); // Récupération du fichier de configuration dans le répertoire courant
     
                        }catch(FileNotFoundException fnfe){
                            fnfe.printStackTrace();
                            System.out.println("CONFIG FILE NOT FOUND - IN propriete.java");               
                        }
     
                        try{
                            properties.load(frp);                                   // chargement des propriétés dans "properties"
                        }catch(IOException ioe_e){
                            ioe_e.printStackTrace();
                            System.out.println("ERROR CONFIG LOADING IN propriete.java");
                        }finally{
                            frp.close();
                        }
     
                        Serveur_conf = properties.getProperty("serveur");           // configuration pour le nom de serveur
                        prompt_conf = properties.getProperty("prompt");             // configuration pour le prompt
                        Serveur_SGDB_conf = properties.getProperty("serveur_SGDB"); // serveur_SGDB en cas de besoin de modification
                        Admin_SGDB_conf = properties.getProperty("admin_SGDB");     // admin_SGDB en cas de besoin de modification
                        Pass_SGDB_conf = properties.getProperty("pass_SGDB");  // pass_SGDB_conf en cas de besoin de modification
    Aprés je fais plein de méthodes pour renvoyer les infos. T'en que sa marche .

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Désolé mais ton code me fait réagir ! Pourquoi utiliser deux bloc try/catch ???

    C'est particulièrement crade car si jamais tu rentres dans le premier catch (FileNotFound), tu te contentes d'afficher un message mais tu continues ton traitement comme si de rien n'était... ce qui va provoquer un NullPointerException !!!


    Le bloc try/catch doit mettre un terme au traitement complet.


    Idem pour la lecture du properties. Si elle échoue tu va quand même récupérer les valeurs des clefs (qui n'existeront pas).



    Bref l'échec de la lecture n'est pas bien géré :/


    a++

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    En plus de cela ton code est plus compliqué à lire que nécessaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File fp = new File(""); // ???
    frp = new FileInputStream(fp.getAbsolutePath()+s+"Geli_config.txt");
    Pourquoi ne pas faire tout simplement (comme ca a été dit plus haut par Népomucène) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File fp = new File("Geli_config.txt"); // Ca me semble mieux.
    frp = new FileInputStream(fp);
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/04/2007, 14h59
  2. Répertoire de travail
    Par souadmaa dans le forum Delphi
    Réponses: 5
    Dernier message: 27/02/2007, 14h11
  3. Répertoire de travail pollué par .aux, .log, .toc, et autres
    Par kloss dans le forum Editeurs / Outils
    Réponses: 8
    Dernier message: 12/06/2006, 10h31
  4. [VB6]changer de répertoire de travail
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/05/2006, 20h36
  5. Réponses: 6
    Dernier message: 11/05/2006, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo