Краткий ответ
Используйте один из этих двух методов:
Например:
InputStream inputStream = YourClass.class.getResourceAsStream("image.jpg");
-
Длинный ответ
Как правило, не требуется загружать файлы, используя абсолютные пути. Например, не делайте этого, если можете помочь:
File file = new File("C:\\Users\\Joe\\image.jpg");
Этот метод не рекомендуется по крайней мере по двум причинам. Во-первых, он создает зависимость от конкретной операционной системы, которая не позволяет приложению легко перемещаться в другую операционную систему. Одним из основных преимуществ Java является возможность запуска одного и того же байт-кода на разных платформах. Использование такого абсолютного пути делает код намного менее переносимым.
Во-вторых, в зависимости от относительного расположения файла этот метод может создать внешнюю зависимость и ограничить мобильность приложения. Если файл существует за пределами текущего каталога приложения, это создает внешнюю зависимость, и необходимо будет знать о зависимости, чтобы переместить приложение на другой компьютер (подверженный ошибкам).
Вместо этого используйте методы getResource()
в классе Class
. Это делает приложение намного более портативным. Его можно перемещать на разные платформы, машины или в каталоги и по-прежнему функционировать правильно.