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 при компиляции.