Если файл, как ожидается, будет расположен по отношению к основному классу, вы можете использовать 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()
имеется список доступных системных свойств.