public class MyProp { private static MyProp instance; private static Object sync = new Object(); private static java.util.Properties prop; public static MyProp getInstance() { if (null == instance) { synchronized(sync) { if (null == instance) { instance = new MyProp(); } } } return instance; } public String getVal(String key){ return prop.getProperty(key); } public java.util.Vector getListProp(){ java.util.Vector retour = new java.util.Vector(); for (java.util.Enumeration e = prop.propertyNames() ; e.hasMoreElements() ;) { retour.addElement(e.nextElement()); } return retour; } public void recharge(String file){ synchronized(sync){ try{ prop.load( new java.io.FileInputStream(file) ); }catch(java.io.IOException a){ System.err.println("Fichier properties non trouvé"); a.printStackTrace(); } } } private MyProp(){ prop=new java.util.Properties(); this.recharge("blah.properties"); } } ///////////////////////////////////////////// public class MaMain { public static void main(String[] args) { System.out.println("coucou :)"); MyProp.getInstance().recharge("blah.properties"); java.util.Vector maListe = MyProp.getInstance().getListProp(); for (java.util.Enumeration e = maListe.elements() ; e.hasMoreElements() ;) System.out.println(e.nextElement()); System.out.println("ext2" + MyProp.getInstance().getVal("ext2")); System.out.println("ext2" + MyProp.getInstance().getVal("ext1")); } }