Есть .properties
файл в нем лежат пути:
path1=doc/1.txt
path2=src/2.png
И есть корень который ведет в папку где лежат doc/1
и src/2
root=/user/pavel/Document/
Пытаюсь сделать так чтобы я мог только в одном месте менять корень. На пример:
root=/user/pavel/Document
path1=${root}/doc/1.txt
path2=${root}/src/2.png
Как это сделать подскажите пожалуйста.
Если проект собирается maven'ом то можно сделать так:
в pom.xml
добавить следующее:
<project>
<properties>
<custom.property>property-value</custom.property>
</properties>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>file.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
<project>
тогда если file.properties
содержит шаблон, на примере такого:
prop.name = value of my prop is ${custom.property}
после выполнения команды:
prepare-resources
в файле окажется строка:
prop.name = value of my prop is property-value
Если поискать на SO, то можно найти этот вопрос
Из него видно, что java не парсит переменные сама, это надо делать за нее.
Для переменных окружения эта можно сделать так:
/*
* Returns input string with environment variable references expanded, e.g. $SOME_VAR or ${SOME_VAR}
*/
private String resolveEnvVars(String input)
{
if (null == input)
{
return null;
}
// match ${ENV_VAR_NAME} or $ENV_VAR_NAME
Pattern p = Pattern.compile("\\$\\{(\\w+)\\}|\\$(\\w+)");
Matcher m = p.matcher(input); // get a matcher object
StringBuffer sb = new StringBuffer();
while(m.find()){
String envVarName = null == m.group(1) ? m.group(2) : m.group(1);
String envVarValue = System.getenv(envVarName);
m.appendReplacement(sb, null == envVarValue ? "" : envVarValue);
}
m.appendTail(sb);
return sb.toString();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вот Spring MVC это простые сервлетыЯвляется ли реализации jax ws и jax rs основанными на servletax? к примеру те же Jersey и Metro
Допустим, пользователь открыл одну и ту же страницу в двух вкладка (страница обрабатывается ViewScoped бином)Пользователь повзаимодействовал...