ServiceLoader未加载新服务

2024-01-11

我的 ServiceLoader 不想加载我的新服务。我想我已经正确设置了一切。

核心.Main

public class Main {
  public static void main(String[] args) {
      System.out.println("Before");
      Iterator<IService> services = ServiceLoader.load(IService.class).iterator();
      while (services.hasNext()) {
          IService service = services.next();
          System.out.println(service.sayHi());
      }
      System.out.println("After");
  }
}

核心.服务.IService

package service;

public interface IService {
    String sayHi();
}

DbDataBuilder.builder.DbDataBuilder

package builder;

import service.IService;
public class DbDataBuilder implements IService {

    public DbDataBuilder() {
    }

    public String sayHi() {
        return "I am Data Builder";
    }
 }

META-INF/服务/service.Iservice

builder.DbDataBuilder

但是当我运行它时,控制台输出是:

Before
After

我有什么不对吗?


当构建器在运行时而不是在编译时位于类路径上时,ServiceLoader 非常有用。您应该添加第三个模块,其中编译范围依赖于 Core,运行时范围依赖于 DbDataBuilder,将 Main 移至第三个模块并享受 ServiceLoader 功能

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ServiceLoader未加载新服务 的相关文章

  • 将嵌套的 ArrayList 转换为 Java List

    我有这个方法 public List
  • 如何实现 Eclipse 清理和构建(又名重建)?

    我删除了我的 binEclipse Indigo 中的文件夹 与 Helios 非常相似 现在我想知道如何重建我的 Java 项目 我只是找不到像 Netbeans 中那样的按钮 对于 Eclipse 您可以在下面找到重建选项项目 gt 清
  • 从插件设置 Maven 属性

    我在这里阅读了一些关于如何从 Maven 插件设置属性的问题 其中大多数讨论了应用程序的版本号 似乎没有简单的方法可以做到这一点 我发现的最佳解决方案是拥有一个从插件更新的 filter properties 文件 并由主 pom 文件使用
  • 如何制作具有两个索引的 Map?

    我在java中有一张这样的地图 Map
  • java.io.IOException: EnsureRemaining: 仅剩余 0 个字节,尝试读取 1

    我在 giraph 中的自定义类方面遇到一些问题 我制作了 VertexInput 和 Output 格式 但总是收到以下错误 java io IOException ensureRemaining Only bytes remaining
  • JCombobox 字符串项(可见)和整数键(固有)

    我有一个数据库模式 它将作为 JTable 列显示在 JCombobox 中以选择名称 但我希望将 ID 字段插入 作为外键 到另一个表中 通常 在下拉列表中选择一个项目 将所选项目带到组合框的显示区域 我想要做的是 当选择组合框中的任何项
  • 使用 Bouncy Castle 重建 ED25519 按键 (Java)

    Bouncy Castle 的最新 测试版 版本 bcprov jdk15on 161b20 jar 支持 ED25519 和 ED448 EC 加密以进行签名 我设置了这个完整的工作示例 它按预期工作 我的问题 我是否正确重建了私钥和公钥
  • Java OR 运算符优先级

    如何在 Java 中以 if 的方式链接条件语句b是假的 不如不检查c If a and c是假的 并且b是真的 确实c会被检查吗 if a b c 我正在寻找 PHP 所拥有的类似功能 但两者之间存在差异OR and 爪哇 如果左操作数是
  • 堆内存与对象内存

    根据一篇关于Java内存和特性的论文 内存分数分为两种类型 堆内存 即应用程序在运行时消耗的内存 对象内存 即程序中使用的各种对象分配的内存 例如整数和字符串等 他们的意思是stack当他们说时的记忆object记忆 或者它们是什么意思 很
  • 从多个地方绘制 JPanel

    我目前正在为学校开发一款 Java 2D 游戏 我们必须使用抽象工厂设计模式 对于 2D 实现 我使用工厂如下 public class Java2DFact extends AbstractFactory public Display d
  • 字节流和字符流

    请解释一下什么是字节流和字符流 这些究竟意味着什么 Microsoft Word 文档是面向字节的还是面向字符的 Thanks 流是一种顺序访问文件的方式 字节流逐字节访问文件 字节流适用于任何类型的文件 但不太适合文本文件 例如 如果文件
  • 使用 java 中的准备好的语句插入自定义 SQL 类型

    我有一些自定义类型 它们基本上都是枚举 以下是它们的外观示例 CREATE TYPE card suit AS ENUM spades clubs hearts diamonds 我在 Java 中有一些准备好的语句 看起来像这样 Setu
  • 在 Struts 2 中使用单个文件标签上传多个文件

    我想使用单个 Struts 2 文件标签上传多个文件 就像在 Gmail 中一样 我们使用 CTRL 键来选择多个文件来附加多个文件 我知道如何上传多个文件 但我想使用单个文件标签 我在一个小画廊应用程序中上传多个文件 如果您的操作已设置为
  • 在大画布上滚动

    我需要一些帮助来了解滚动绘制到 Android 画布上的项目的基础知识 假设我想创建一个时间线 其中 0 处的时间是可视化的顶部 并且随着时间的增加 时间线继续呈现在上一个点下方 如果我想在 Android 上渲染它 我知道我可以通过重写
  • 使用 Spark SQL 时找不到 Spark Logging 类

    我正在尝试用 Java 进行简单的 Spark SQL 编程 在程序中 我从 Cassandra 表获取数据 将RDD into a Dataset并显示数据 当我运行spark submit命令 我收到错误 java lang Class
  • 未找到 GroovyEvaluator

    我会尝试在以下位置制作我的 PIE 3D 报告iReport 在我的 struts xml 中 我用这个来调用我的报告
  • 如何组织课程、课程包[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您如何决定包名称应该是什么以及什么类应该放入哪个包中 我正在开发一个项目 在该项目中 我不断添加 删除类 并且不确定我是否需要一个新包 或者应该将其添
  • 当键位于父类中时,如何将一对多集合映射到连接的子类

    我想将一对多集合映射到子类 但集合的键是父类的属性 目前我正在映射 AbstractFoo Foo 和 Bar 类 如下所示
  • 如果垃圾收集器没有删除未引用的对象,它们还能运行吗?

    如果一个对象正在等待垃圾收集 但包含一个在该对象的最后一个引用更改时正在运行的线程 那么该线程是否仍会运行并且代码是否仍会执行 那么您是否可能有一堆应该删除的幽灵对象 但它们对您的代码产生了影响 你如何防止这种情况发生 有没有办法让对象知道
  • 如何在Java中添加两个“卡”的值?

    我正在开发一个项目来模拟二十一点游戏中的第一笔交易 到目前为止 程序创建了两张随机等级 ACE 到 KING 和随机花色的牌 我正在努力创建一个切换表或 if else 梯形图 将两张卡的附加值分配为可变分数 下面的代码从概念上代表了我想要

随机推荐

  • Typemock Isolator:模拟未注入的依赖项?

    My WidgetDoer类取决于Foo 未注入 我需要假装 foo的实施DoStuffWith 然后验证Do 返回结果 这是我的真实代码的简化表示 public class WidgetDoer readonly Foo foo publ
  • 淡入、淡出、淡入

    是什么不同之处之间fadeIn vs fadeOut vs fadeTo fadeIn http api jquery com fadeIn 从元素当前的不透明度渐变到 1 fadeOut http api jquery com fadeO
  • http 和 https 的本地存储相同吗?

    我正在寻找一种方法来为两者使用相同的 localStorage 或类似的 http example com and https example com 根据this https developer mozilla org En DOM St
  • 获取最顶层的UIViewController

    如果我在UINavigationController 我怎样才能找出最上面的是什么UIViewController 或者就我而言 我想知道是否某个UITableViewController是不是最上面的 我尝试使用 self navigat
  • 如何在两个(或多个)XAML 文件之间共享 VisualStateManager?

    我们正在编写一个基于 Prism 的 Silverlight 应用程序 并且我们在单独的模块中拥有一大堆页面 页面之间的转换是通过导航事件处理的 每个模块都实现了以下方法 以在导航到页面时显示页面并在导航自页面时隐藏页面 public vo
  • OSM - 使用自定义图标显示当前位置

    谁能告诉我如何使用自定义图标在 OSM 地图上显示我当前的位置 使用默认人物图标 MyLocationNewOverlay myLocationoverlay new MyLocationNewOverlay mapView myLocat
  • 如何将导航后退按钮更改为图像?

    所以我有这些用于自定义导航栏和项目的图像 它们看起来像这样 目前我设置了自定义导航栏 但是我不知道如何将默认的 后退 按钮更改为后退按钮图像下面 这就是我想知道的 任何帮助将不胜感激 注意 我正在使用故事板 谢谢 这是导航栏 这是我的后退按
  • SQL 将第二个表中的行计数添加到主查询

    我正在尝试改进一个 不是那么多 简单的查询 我需要检索表 A 中的每一行 然后将表 A 与表 B 连接起来 这样我就可以获得所需的所有数据 同时 我需要添加一个额外的列 其中包含表 C 中的 count 就像是 SELECT a SELEC
  • 服务不会处理消息

    我创建了一个使用 Windows 消息系统的 Windows 服务 当我从调试器测试应用程序时 消息顺利通过 但是当我安装它时 我的消息 14 分钟前询问 弗拉基米尔 1图加 服务通常不接收窗口消息 他们根本不一定有窗把手 即使它们这样做
  • 为什么此 C 代码会出现分段错误?

    这段代码给了我一个分段错误 char s1 String 1 s2 String 2 void swap char char int main void swap s1 s2 return 0 void swap char p char q
  • 使用index.ts文件导出类会导致注入的构造函数中未定义

    我使用 index ts 文件来封装导出 如 Angular 2 风格指南中所述 https github com mgechev angular2 style guide blob master old README md directo
  • 如何检查 System.IO.File.Delete 是否成功删除文件

    使用 system io file 类删除文件后 System IO File Delete openedPdfs path 如果文件已成功删除 我需要运行一些代码 只要该方法不返回任何值 我就会在删除方法之后检查文件是否存在 如果它仍然存
  • PHP docBlock @return 类名

    如何创建一个声明 return 的 PHP DocBlock 该 return 声明类的返回 目前这很简单 This returns an object of the User class return User public functi
  • Grails - 按查询中的两个字段排序

    我的项目中有这样一个域类 class Log Integer entityId Integer tableId Date logDt 我想通过某个tableId选择所有记录 并按entityId排序and林德描述 按一个字段排序效果很好 L
  • 绘图中的堆积条形图:如何控制每个堆栈中条形的顺序

    我正在尝试以绘图方式订购堆积条形图 但它不尊重我在数据框中传递它的顺序 最好使用一些模拟数据来显示 library dplyr library plotly cars lt sapply strsplit rownames mtcars s
  • Tkinter StringVar 错误

    您好 我在这段代码中遇到了一个错误 即 StringVar 未定义 这可能是一件小事 但我对 tkinter 没有那么丰富的经验 需要一些帮助 谢谢 这是我的代码 import tkinter as tk class Converter1
  • Godaddy cron 作业设置用于运行 php 脚本

    你能帮我在 godaddy webhosting 上设置 cron 作业吗 我有需要运行的 php 文件 它位于 cron 子目录中 所以地址是http test com cron file php http test com cron f
  • 如何在 R 中使用 gsub 进行精确字符串匹配? [复制]

    这个问题在这里已经有答案了 raw c MOUNTAIN VIEW MOUNTAIN x gsub MOUNTAIN MOUNTAIN VIEW raw ignore case TRUE Current output MOUNTAIN VI
  • Android:在 Fragment 中启动 Activity [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我是安卓开发新手 现在我的操作栏中有选项卡 我已经为这些片段创建了类 我的第一堂课目前只有一个按钮 稍后我会添加更多 当您单击按钮时 我尝试
  • ServiceLoader未加载新服务

    我的 ServiceLoader 不想加载我的新服务 我想我已经正确设置了一切 核心 Main public class Main public static void main String args System out println