Если я правильно понял, при исполнении Java-программы есть только рабочая директория (та, в которой пользователь находится во время запуска программы из консоли), а не исполняемая.
Собственно, где и как правильно хранить необходимые в работе программы внешние файлы и настройки? Есть ли в стандартной библиотеке какой-нибудь слой абстракции, который позволяет получить путь вроде /home/username или %appdata%? В Android есть такая штука, к примеру: