2017-01-24 4 views
1

Ich verwende Ressourcenbündel und möchte die .properties-Datei zur Laufzeit aus einem anderen Verzeichnis in meine Java-Datei laden. Ist es möglich ? Wird es nach dem Erstellen ausführbarer JAR auch funktionieren?Laden von .properties-Datei von einem anderen Speicherort

import java.util.Enumeration; 
import java.util.ResourceBundle; 

public class Test { 
    public static void main(String[] args) { 
     ResourceBundle bundle = ResourceBundle.getBundle("G:\myProject\test.properties"); 
     Enumeration<String> enumKeys = bundle.getKeys(); 
     while(enumKeys.hasMoreElements()){ 
      System.out.println(enumKeys.nextElement()); 
     } 
    } 

} 
+0

Mögliche Duplikat [von außerhalb des Klassenordner Wie lesen eine Eigenschaftendatei in Java?] (Http: //stackoverflow.com/questions/11251289/how-to-read-a-properties-file-in-java-from-outside-the-class-folder) – ares

+0

Err ... müssen Sie sogar ein Ressourcenpaket verwenden oder könnten Sie einfach die Properties-Klasse verwenden? Im letzteren Fall laden Sie es einfach von einem FileInputStream. – Silverclaw

Antwort

0

eine URL Class-Loader verwenden, um Dateien aus einem Verzeichnis auf dem Classpath hinzuzufügen:

File file = new File("G:\myProject"); 
URL[] urls = {file.toURI().toURL()}; 
ClassLoader loader = new URLClassLoader(urls); 
ResourceBundle bundle = ResourceBundle.getBundle("test", Locale.getDefault(), loader); 

Enumeration<String> enumKeys = bundle.getKeys(); 
while(enumKeys.hasMoreElements()){ 
    System.out.println(enumKeys.nextElement()); 
} 
Verwandte Themen