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

Java Discussion :

Problème avec ClassLoader.getResource()


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Problème avec ClassLoader.getResource()
    Bonjour,
    je cherche à utiliser un fichier de propriétés dans mon programme.
    Je voulais savoir si la méthode

    ClassLoader.getResource(System.getProperty(nom_de_la_propriete))

    est la bonne pour utiliser un fichier qui peut se trouver n'importe où (cad à l'extérieur du JAR du programme).

    Je n'arrive pas à la faire fonctionner. J'ai un NullPointerException quand je mets le chemin absolu du fichier de propriétés (-Dtutu_prop=/home/toto/tutu.properties)

    Le code d'appel ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Properties tutuProp = new Properties();
    URL url = ClassLoader.getSystemResource(System.getProperty("tutu_prop"));
    try{
         tutuProp.load(url.openStream()); //NullPointerException
    }...
    Je vous remercie,
    Julien.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Le chemin étant absolu, et le fichier à l'extérieur d'un jar, n'utilise pas "Class.getResource".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci.

    Que faudrait-il utiliser alors pour récupérer le contenu d'un fichier de propriétés (tutu.properties) paramétré avec la commande suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -Dtutu.properties=/home/.../tutu.properties ? toto.jar

    J'ai fais de la ***, désolé, il suffit de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tutuProp.load(new FileInputStream(System.getProperty("tutu_prop")))

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Il est un peu vieux ce post mais comme c'est la première occurrence d'une recherche google pour "classloader getresources récupérer un fichier",
    je mets la solutions que j'ai trouvé pour résoudre mon problème.

    Dans mon cas, il s'agit de récupérer le chemin d'un fichier mis dans le CLASSPATH.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL monFichierURL = getClass().getClassLoader().getRessource("monfichier.txt");
    File monFichier = new File(monFichierURL.getFile());

    Comme ça je retrouverai ma solution dans plusieurs mois quand j'aurai oublié comment on fait.

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

Discussions similaires

  1. Problème avec classLoader et classe interne
    Par croquette06 dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2012, 00h01
  2. Problème avec plusieurs ClassLoader
    Par Baptiste Wicht dans le forum Hibernate
    Réponses: 7
    Dernier message: 17/08/2008, 18h30
  3. [ClassLoader] Chargement dynamique d'une classe -> problème avec packages !
    Par ymerej dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 31/05/2006, 21h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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