По сути, вы хотите выполнить строковую интерполяцию с переменными среды и развернуть домашние каталоги.Я не знаю простого способа сделать последнее, но если вы используете Spring для настройки, вы можете использовать PropertyPlaceholderConfigurer для замены заполнителей в строках.
По умолчаниюпеременные окружения включены в набор замен заполнителей.
ОБНОВЛЕНИЕ: поскольку это от пользователя, вы все равно можете использовать вспомогательные классы Spring:
String stringToBeInterpolated = ....;
Properties properties = System.getProperties();
PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper("${","}");
String interpolatedValue = helper.replacePlaceholders(stringToBeInterpolated , properties);
Это непомогите с ~, но на этом этапе я бы предположил, что вы можете сделать довольно простую операцию замены строки.