OK. Итак ... вы спросили, как другие люди справляются с этой проблемой. Во-первых, они не оставляют это на Eclipse, где размещаются файлы. Они выбирают, где они хотят их, как они хотят получить к ним доступ, и затем имеют свой инструмент сборки (который, если они просто не играют, не должен быть IDE, подобным Eclipse, а скорее специализированным инструментом сборки, таким как Maven или Ant), где поместите это.
Выбор того, где вы хотите файл, зависит от того, что вы хотите с ним делать. Если это просто файл конфигурации, который никогда не будет редактироваться во время выполнения, вы обычно помещаете его в свой JAR (что является еще одной практикой - приложения помещаются в один или несколько JAR, WAR или EAR, а не в каталог классов). Если файл должен быть отредактирован во время выполнения, что, исходя из вашего «просмотра», кажется, имеет место, вы обычно помещаете его в каталог конфигурации вне вашего JAR.
Другой способ выбора способа доступа к нему (из пути к файлу или пути к классам). Там, где это возможно, я предпочитаю доступ к файлам из classpath, потому что он более переносим - а в JAR это в значительной степени требуется. Если это не имеет смысла в вашем случае, тогда выберите путь, отличный от «user.dir», если он меняется при развертывании. Вы можете жестко закодировать его, использовать переменную окружения, свойство, файл конфигурации, аргумент командной строки и т. Д., Чтобы установить фактический путь.
Всегда выбирайте, куда идут вещи и как вы к ним обращаетесь. Не позволяйте вашим инструментам выбирать за вас. Это сделает вашу жизнь проще: -)