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

Entrée/Sortie Java Discussion :

[JAR] pb class qui fait référence à un fichier property


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 37
    Points
    37
    Par défaut [JAR] pb class qui fait référence à un fichier property
    Bonjour a tous

    j'ai cree un jar contenant un une classe qui va chercher des propriete dans un fichier properties.
    pb qd je fais appel a la classe il me dit que le fichier properties n'existe pas

    java.io.FileNotFoundException: file:\C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\core.jar!\artware\core\config\config.properties (Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Montre-nous le code que tu utilises pour charger les properties. Les properties sont dans le JAR d'après l'exception, c'est bien cela ?
    Romain Guy
    Android - Mon livre - Mon blog

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    effectivement les property sont dans le jar
    /**
    * @author vnancy
    */
    public final class ConfigManager
    {
    private String FILE_SEP = System.getProperty("file.separator") ;
    /**
    * The config file path.
    */
    public static final String CONFIG_FILE = "artware/core/config/config.properties";
    /**
    * Object Properties linked to the config file.
    */
    private static Properties properties;
    /**
    * Instance of ReadConfig.
    */
    private static ConfigManager instance = new ConfigManager();

    /**
    * Constructor.
    */
    private ConfigManager()
    {
    String basePath = ConfigManager.class.getName();
    System.out.println(basePath);
    basePath = "/" + basePath.replace(".", "/") + ".class";
    URL url = getClass().getResource(basePath);
    String path = url.getFile();
    // enleve le .class
    path = path.substring(0, path.length()
    - basePath.length());

    FileInputStream iConfigFile;
    try
    {
    iConfigFile = new FileInputStream(path.replace("/",FILE_SEP) + FILE_SEP + CONFIG_FILE.replace("/",FILE_SEP));
    properties = new Properties();
    properties.load(iConfigFile);
    }
    catch (FileNotFoundException e)
    {
    e.printStackTrace();
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    }

    /**
    * @return Return an instance of readConfig
    */
    public static ConfigManager getInstance()
    {
    return instance;
    }

    /**
    * @param aKey The key in the config file
    * @return Return the element in the config file with the key aKey
    */
    public String getProperty(String aKey)
    {
    return properties.getProperty(aKey);
    }
    }

  4. #4
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Tu essayes d'ouvrir tes properties avec un FileInputStream dans le JAR. Cela ne peut pas marcher. Fais simplement ça :

    InputStream in = getClass().getResourceAsStream(CONFIG_FILE);
    properties = new Properties();
    properties.load(in);

    Pour que cela fonctionne rajoute un "/" devant le "artware" dans ta déclaration de CONFIG_FILE ou alors assure-toi que le chemin déclaré dans CONFIG_FILE soit relatif au fichier ConfigManager.class.
    Romain Guy
    Android - Mon livre - Mon blog

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    je v essayer ca merci de ta reponse rapide

    je te dirais si c resolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/04/2012, 23h47
  2. [Singleton] Class SQL qui fait planté le serveur
    Par Angelsafrania dans le forum ASP.NET
    Réponses: 6
    Dernier message: 25/06/2008, 13h22
  3. classe qui ne fait rien
    Par Nayila dans le forum Langage
    Réponses: 3
    Dernier message: 11/01/2008, 08h05
  4. Charger dynamiquement une classe qui n'est pas dans un jar
    Par rastakouair dans le forum Langage
    Réponses: 12
    Dernier message: 17/12/2007, 19h22
  5. [POO] Une classe qui fait tout ?
    Par Nasky dans le forum Langage
    Réponses: 23
    Dernier message: 26/05/2006, 20h02

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