Для относительных путей вот что я сделал. Я знаю возраст этого вопроса, я просто хочу предложить более простой ответ, который работает в большинстве случаев:
Скажем, у вас есть такой путь:
"path/to/file/folder"
По какой-то причине встроенные в Linux исполняемые файлы, созданные в Eclipse, прекрасно с этим работают. Тем не менее, окна становятся очень запутанными, если использовать такой путь для работы!
Как указывалось выше, есть несколько способов получить текущий путь к исполняемому файлу, но самый простой способ, который я нахожу, работает в большинстве случаев - это добавление к ПЕРЕДНЕМУ вашего пути:
"./path/to/file/folder"
Просто добавив "./", вы получите сортировку! :) Затем вы можете начать загрузку из любой директории, которую пожелаете, при условии, что она выполняется с самим исполняемым файлом.
РЕДАКТИРОВАТЬ: Это не будет работать, если вы попытаетесь запустить исполняемый файл из code :: blocks, если используется среда разработки, так как по какой-то причине code :: blocks не загружает вещи правильно ...: D
РЕДАКТИРОВАТЬ 2: Некоторые новые вещи, которые я обнаружил, заключаются в том, что если вы указываете статический путь, такой как этот, в своем коде (при условии, что вам нужно загрузить Example.data):
"resources/Example.data"
Если вы затем запускаете свое приложение из фактического каталога (или в Windows вы делаете ярлык и устанавливаете рабочий каталог в каталог вашего приложения), то оно будет работать так. Помните об этом при отладке проблем, связанных с отсутствующими путями к ресурсам / файлам. (Особенно в IDE, которые устанавливают неправильный рабочий каталог при запуске исполняемого файла сборки из IDE)