2017-04-26 16 views
0

ich das Bündel von Eigenschaften am Erstellen von Dateien dynamisch mit dynamischen Namen in Ressource-Datei, für diese ich folgenden Code verwendeladen dynamisch erstellte Ressourcendatei: Java

File file = new File("src/main/resources/" + fileName+ ".properties"); 
FileOutputStream fileOut = new FileOutputStream(file); 
properties.store(fileOut, fileName); 
fileOut.close(); 

Problem: - Every mal muss ich Aktualisieren Sie die Ressourcendatei manuell, um auf die dynamisch erstellte Eigenschaftendatei zuzugreifen. Wie kann ich dieses Problem lösen?

+1

Warum erstellen Sie keine Dateien auf externen Pfad und verwenden sie von dort? – rcpayan

Antwort

0

Ich löste dies, indem ich Ressourcendateien im Klassenpfad speicherte, damit der Klassenlader die dynamisch hinzugefügten Dateien laden konnte.

public static void addResourceURLIntoClassPath(URL u) throws IOException { 
    URLClassLoader urlLoader = (URLClassLoader) ClassLoader.getSystemClassLoader(); 
    Class<URLClassLoader> sysclass = URLClassLoader.class; 
    try { 
     Method method = sysclass.getDeclaredMethod("addURL", new Class[] { URL.class }); 
     method.setAccessible(true); 
     method.invoke(urlLoader, new Object[] { u }); 
    } catch (Throwable t) { 
     t.printStackTrace(); 
    } 
} 

Hier URL ist der Weg der src/main/resources

0

bessere Lösung dieses Problems würde Apache-Commons Konfigurationsprojekt werden. Es bietet viel sauberere und getestete Apis. Hier ist die link wie man es benutzt.

Verwandte Themen