首页 > 解决方案 > 如何在运行时将资源注册到类加载器?

问题描述

我发现了关于如何添加文件或类的类似问题,但在这种情况下,要注册的资源将在运行时构建并保存在内存中。

为了说明这一点,假设我想为我将使用的某个库创建配置属性。在初始化这个库之前,我想构建属性资源并将其放在类路径中,以便库可以获取并使用它。

但在这种情况下,属性资源不会在文件系统上。它应该在内存中,当库尝试加载它时,它应该直接从内存中提供。

我想我应该定义一个自定义ClassLoader并覆盖与资源检索相关的方法。另外,我应该以某种方式将我的内存数据转换为URL表格。但我不知道如何将这样的东西转换为URL(我猜它必须与URLConnection.

我知道如果这个特殊的类加载器在这个库中不是“可见的”,那么这个库可能无法找到这个资源。如果它不是类加载器链的一部分。

标签: javaclassloaderembedded-resourceurlclassloader

解决方案


推荐阅读