Java ServiceLoader:没有错误,但也没有找到任何实现

时间:2016-03-16 13:10:00

标签: java

我想弄清楚Java的ServiceLoader。 我设置了一个非常基本的测试实现:

public class BaseThingy {

public BaseThingy(){

    Iterator<WriteService> iter = ServiceLoader.load(WriteService.class).iterator();
    while (iter.hasNext()) {
        WriteService plugin = iter.next();
        System.out.print(plugin.getText());
    }

}}

接口:

public interface WriteService {

String getText();}

现在,据我所知,我编写了一个实现,并将实现类(没有其他文件或清单?)放入jar中。

项目本身需要一个文件:META-INF \ services \ experimental.plugin.WriteService

在这个文件中,我写了实现的全名(在我的例子中,那就是experimental.plugin.WriteHello)。

现在,我在Intellij中作为IDE工作 我应该把文件放在哪里,我应该把jar放在实现类中? 我没有收到任何错误,但也没有找到任何实施。
或者jar文件毕竟需要额外的东西吗?

1 个答案:

答案 0 :(得分:1)

META-INF / services / experimental.plugin.WriteService必须在类路径中以及带有实现的JAR中。