ServiceLoader не загружает реализацию

Я действительно провел много исследований, прежде чем спросить об этом, похоже, я что-то упустил. Я пытаюсь реализовать ServiceLoader и поэтому сделал пример класса:

Структура проекта

код прост:

testInterface.java

package com.test;

public interface testInterface {
    void test();
}

testImpl.java

package com.test;

public class testImpl implements testInterface {

    @Override
    public void test() {
        System.out.println("test");
    }

} 

Main.java

package com.test;

import java.util.ServiceLoader;

public class Main {

    public static void main(String[] args) {
        ServiceLoader<testInterface> serviceLoader = ServiceLoader.load(testInterface.class);

        serviceLoader.iterator().next().test();
    }

}

com.test.testInterface

com.test.testImpl

Я продолжаю получать NoSuchElementException в части итератора, что означает, что реализация не была загружена. Заранее спасибо.

1 ответ

Решение

Поместите ваш META-INF/services/ в ресурсы / и добавьте его в проект Eclipse как исходную папку. Он будет автоматически включен в файл JAR при компиляции.

Другие вопросы по тегам