Я нашел похожие вопросы о том, как добавить файл или класс, но в этом случае ресурс, который нужно зарегистрировать, будет создан во время выполнения и сохранен в памяти.
Итак, чтобы проиллюстрировать это, скажем Я хочу создать свойства конфигурации для некоторой библиотеки, которую я буду использовать. Прежде чем инициализировать эту библиотеку, я хотел бы создать ресурс свойств и поместить его в путь к классам, чтобы библиотека могла подобрать его и использовать.
Но в этом случае ресурс свойств не будет включен файловая система. Он должен быть в памяти, и когда библиотека пытается его загрузить, он должен обслуживаться непосредственно из памяти.
Думаю, я должен определить пользовательский ClassLoader
и переопределить методы, связанные с извлечением ресурсов. Кроме того, я должен каким-то образом преобразовать свои данные в памяти в форму URL
. Но я не знаю, как преобразовать что-то вроде этого в URL
(я предполагаю, что это должно что-то делать с URLConnection
).
Я знаю, что библиотека, вероятно, не сможет найдите этот ресурс, если этот специальный загрузчик классов не "виден" из этой библиотеки. Если он не является частью цепочки загрузчика классов.