Charger fichier properties

Fermé
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017 - 27 mars 2016 à 21:57
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017 - 28 mars 2016 à 12:45
Bonjour,

J'ai une applicatoin web et je cherche à charger un fichier properties depuis une classe qui se trouve dans un .jar qui est dans le dossier lib de TOMCAT et non dans le dossier lib de l'application.
J'ai mi le fichier properties dans le dossier META-INF de l'application et cela me dit qu'il arrive pas à charger le fichier properties.
Voici ma méthode qui s'en charge :

public String recupererValueProperty(String pro){
//Permet de charger un fichier properties
Properties prop = new Properties();
InputStream input = null;
input = this.getClass().getClassLoader().getResourceAsStream("configuration.properties");
try {
prop.load(input);
} catch (IOException e) {
e.printStackTrace();
}

String value = prop.getProperty(pro);
return value;
}
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 mars 2016 à 22:25
Bonjour,

J'ai mi le fichier properties dans le dossier META-INF
Il faudrait plutôt le mettre avec les classes, donc à la racine d'un jar, ou dans le dossier WEB-INF/classes d'un war.

Remarque : getClass().getClassLoader() fait référence aux jars physique sur l'ordinateur, pour un serveur d'application il faut utiliser :
Thread.currentThread().getContextClassLoader().getResourceAsStream("configuration.properties");


Si tu utilises Maven il faut mettre le fichier .properties dans le répertoire src/main/resources et il sera automatiquement placé au bon endroit.
1
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
27 mars 2016 à 22:52
Je n'utilise pas maven
J'ai changer ma méthode :
	public String recupererValueProperty(String pro){
//Permet de charger un fichier properties
Properties prop = new Properties();
InputStream input = null;
input = Thread.currentThread().getContextClassLoader().getResourceAsStream("configuration.properties");
try {
prop.load(input);
} catch (IOException e) {
e.printStackTrace();
}

String value = prop.getProperty(pro);
return value;
}

Sa ne marche toujours pas. J'ai mi mon fichier dans un dossier ressources. Le dossier ne se trouve pas dans Java Ressources mais à la racine du projet.
Et le .jar qui contient la méthode, n'est pas utilisable que avec des applications tomcat mais avec tout type d'application
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 mars 2016 à 23:00
"J'ai mi mon fichier dans un dossier ressources."
Tu dois donc faire
getResourceAsStream("ressources/configuration.properties");

Java ne peut trouver des fichiers que s'ils sont dans son classpath ou accessibles depuis ce classpath, donc à la racine du jar (si ce jar est bien dans le classpath) et les sous-répertoires en dessous à condition de préciser l'arborescence.
0
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
27 mars 2016 à 23:10
sa fonctionne toujours pas:
java.util.Properties$LineReader.readLine(Properties.java.434)
java.util.Properties.load0(Properties.353)
java.util.Properties.load(Properties.341)

La fonctionne est dans un jar qui se trouve dans le dossier lib de tomcat pour cette application
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 mars 2016 à 23:27
Ce serait déjà bien de vérifier que ton jar est dans le classpath de ton application, pour ça tu peux utiliser :
System.out.println(System.getProperty("java.class.path"));


Remarque : le mécanisme de classpath change d'une version à l'autre de Tomcat, ce serait bien d'en savoir plus sur ta configuration...
0
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
27 mars 2016 à 23:34
J'ai la version 8.0.30
0