2012-03-19 3 views
1

Как получить доступ к файлу свойств с именем test.property в user.home?Как получить доступ к файлу свойств в каталоге user.home?

Это не работает:

public class Properties { 

    private static java.util.Properties p = new java.util.Properties(); 

    static { 
     try { 
      String home = System.getProperty("user.home"); 
      home += "\\test.properties"; 
      System.out.println("User home: " + home); 
      InputStream is = Properties.class.getResourceAsStream(home); 
      p.load(is); 

     } catch (FileNotFoundException e) { 
      System.out.println("property file could not be found!"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+1

Как в стороне, лучше поместить свойства приложения в подкаталог 'user.home' на основе имени пакета основного класса. Это позволяет избежать * вашего * (плохо названного) 'test.properties' от перезаписывания * my * (плохо названного)' test.properties' (или наоборот). –

+0

@dooonot В дальнейшем ссылка «не работает» не является подходящим способом описания проблемы. Проводка кода - это первый шаг, следующий - публикация того, что на самом деле происходит, т. Е. Какой вывод вы получаете, исключения и т. Д. Не просто предполагайте, что люди будут не только компилировать и запускать ваш код, но и получать те же результаты ты. – Thor84no

ответ

1
File propsFile = new File(home, "test.properties"); 
InputStream is = new FileInputStream(propsFile); 

Вы, вероятно, обнаружите, что user.home не на времени выполнения классовым пути приложения. В этом случае вместо этого используйте File.

Смежные вопросы