当前位置: 首页 > 知识库问答 >
问题:

URLClassLoader是否适合SPI?

佴飞驰
2023-03-14

我正试图通过服务提供者API在运行时由URLClassLoader加载一个jar。然而,结果却是失败的。

以下是我所做的:

    null
  1. 我尝试了抽象类而不是我的SPI接口的接口,当我无法实现我的目标时,将它改回接口;
  2. 我已尝试PathMatchingResourcePatternResolver获取资源并将我的URLClassLoader作为输入参数传递,但没有工作;
  3. 我尝试了Apache实现的ResourceFinder,但它也找不到适当的资源;

我的问题是如何通过URLClassLoader从外部jar加载资源?SPI可能是一种解决方案吗?

共有1个答案

万俟修诚
2023-03-14

简单地说,答案是肯定的。

您可能会好奇出了什么问题,这个问题很好,答案是urlclassloader。但怎么做?URLClassLoader足够好,可以处理您所放置的每个项。换句话说,可以通过参数urls将多少项放入URLClassLoader中。因此,如果要使其工作,需要将外部jar解压缩到指定目录,并将输入参数URLs提取到URLClassLoader中的所有项添加为:

loader = new URLClassLoader(list.toArray(new URL[0]));

其中list包含所有项。

顺便说一下,这个解决方案是基于Hadoop项目的。感谢Apache Hadoop Work Team的出色项目。

 类似资料:
  • 问题内容: 用Java编写了一个随机模拟,该模拟从磁盘上的几个CSV文件加载数据(总计约100MB),并将结果写入另一个输出文件(数据不多,只有布尔值和几个数字)。还有一个参数文件,对于不同的参数,模拟输出的分布可能会发生变化。为了确定正确/最佳的输入参数,我需要针对多个输入参数配置运行多个模拟,并查看每组中输出的分布。根据参数和随机性,每次仿真需要0.1-10分钟。 我一直在阅读有关Hadoop

  • 区分度不高的字段不适合做索引,因为索引页是需要有开销的,需要存储的,不过这类字段可以做联合索引的一部分。

  • 问题内容: 我想使用需要不时进行排序的数据结构。数据结构的大小几乎不会超过1000个项目。 哪一个是更好的- 或者? 哪种排序算法更好用? 问题答案: 在Java 7之前,它没有什么区别,因为它将列表的内容转储到数组中。 在Java 8中,使用会稍微快一些,因为它将调用并具有专门的版本,该版本可以直接对后备数组进行排序,从而保存副本。 因此,根据Java版本的不同,底线更好,因为它可以提供相似或更

  • 问题内容: 在我们的应用程序的Linux构建中,我需要一个用于嵌入式探查器的高分辨率计时器。我们的探查器可测量的范围与单个功能一样小,因此其计时器精度必须高于25纳秒。 以前,我们的实现使用内联汇编和rdtsc操作直接从CPU查询高频计时器,但这是有问题的,需要经常重新校准。 因此,我尝试使用该函数来查询CLOCK_PROCESS_CPUTIME_ID。文档声称这给了我纳秒级的计时,但是我发现单次

  • 问题内容: 正如前面所讨论的,确认电子邮件应该有一个独特的,(几乎)未猜测的代码- 基本上是一个一次性密码 --in确认链接。 UUID.randomUUID()文档说: 使用加密强度高的伪随机数生成器生成UUID。 这是否意味着在正确实现的JVM中的UUID随机生成器适合用作唯一的(实际上)不可猜测的OTP? 问题答案: 否。 根据UUID规范: 不要以为UUID很难猜测;例如,它们不应用作安全

  • 问题内容: 我需要知道laravel 5队列管理系统是否适合大型项目(拥有约100.000用户)。我想每天一次执行类似消息传递(不是垃圾邮件:))用户的操作。 Redis是否足以胜任这项工作(排队)?还是最好使用专门用于排队的库(例如beantalkd)? 问题答案: 为了公平起见,并尝试对此问题发布合理的答案,我们应该考虑以下几点: 订阅人数 要交付的内容 运行同时队列所需的系统资源 100,0