Charger fichier properties

titi0006 Messages postés 184 Statut Membre -  
titi0006 Messages postés 184 Statut Membre -
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 19031 Statut Modérateur 3 020
 
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 184 Statut Membre
 
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 19031 Statut Modérateur 3 020
 
"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 184 Statut Membre
 
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 19031 Statut Modérateur 3 020
 
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 184 Statut Membre
 
J'ai la version 8.0.30
0