2017-01-24 2 views
1

Я использую Resource bundle, и я хочу загрузить файл .properties в свой файл Java во время выполнения из другого каталога. Является ли это возможным ? Будет ли он работать после создания исполняемого JAR?Загрузка файла .properties из другого места

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

Возможный дубликат [Как прочитать файл свойств в Java из вне папки Class?] (HTTP: //stackoverflow.com/questions/11251289/how-to-read-a-properties-file-in-java-from-outside-the-class-folder) – ares

+0

Err ... вам даже нужно использовать пакет ресурсов или вы можете просто использовать класс «Свойства»? В последнем случае просто загрузите его из FileInputStream. – Silverclaw

ответ

0

Используйте класс URL загрузчик для добавления файлов из каталога в путь к классам:

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()); 
}