«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как последовательно получать доступ к встроенным ресурсам в JAR?

Как последовательно получать доступ к встроенным ресурсам в JAR?

Опубликовано 10 ноября 2024 г.
Просматривать:238

How to access embedded resources in a JAR consistently?

Загрузка ресурсов из JAR

При доступе к ресурсам, встроенным в JAR-архив, разработчики обычно сталкиваются с несоответствием пути к ресурсу, полученного во время IDE выполнении и при запуске приложения через JAR. В контексте IDE доступ к ресурсам осуществляется непосредственно из файловой системы, тогда как в среде JAR путь резко украшен префиксом архива (например, «jar:/root/app.jar!/»).

Чтобы решить эту проблему и обеспечить согласованный механизм доступа к ресурсам, прислушайтесь к следующим советам:

Используйте getResourceAsStream

Избегайте соблазна загружать ресурсы с помощью FileInputStream или аналогичных подходов. Вместо этого используйте метод getResourceAsStream() для получения ресурса в виде входного потока, из которого можно удобно читать данные.

Избегайте прямого доступа к файловой системе

Если ваш код полагается на доступ к ресурсам как к отдельным файлам, хранящимся в файловой системе, воздержитесь от упаковки этих ресурсов в файл JAR. Рассмотрите альтернативный вариант, например сохранение их в виде отдельных файлов.

Рассмотрите возможность извлечения временных файлов

В крайнем случае, вы можете изучить хакерское решение, включающее следующие шаги. :

  1. Проверьте, находится ли ресурс в отдельном файле в JAR.
  2. Если это не так, извлеките ресурс во временный файл.
  3. При необходимости используйте извлеченный файл в своем приложении.

Хотя этот подход может быть функциональным, его бессистемный характер предполагает, что его следует использовать осторожно.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3