2009-04-11 7 views
2

Я пытаюсь локально создать файл свойств программно, не имея , чтобы передать его fullpathname в командной строке моей программе. Я думаю, если я могу найти путь к основному классу, я могу вставить свой файл свойств в тот же каталог или в подкаталог.Как я могу программно найти полный путь к основному классу-исполнителю

Если это не сработает, есть какой-то другой способ, я могу найти путь к свойствам файла , не передавая его в командной строке.

Благодаря

ответ

8

Если файл, как ожидается, будет расположен по отношению к основному классу, вы можете использовать Class.getResource() или Class.getResourceAsStream() следующим образом:

class MainClass { 
    public static void main(String[] args) { 
     URL props = MainClass.class.getResource("foo.properties"); 
     // ... 
    } 
} 

Это вернет URL или InputStream, соответственно; есть перегрузка для Properties.load(), которая принимает InputStream.

Вы можете указать пути в подкаталогах и т. Д. Относительно местоположения класса или использовать метод getResource() для другого класса для получения файлов относительно этого местоположения.

Если вы хотите, чтобы вычислить путь относительно текущего рабочего каталога (который не обязательно совпадает с родителем основного класса), то вы можете использовать следующий, чтобы получить этот путь:

String cwd = System.getProperty("user.dir"); 

В документации для System.getProperties() имеется список доступных системных свойств.