ServiceProvider in Eclipse

Kevin94

Top Contributor
Wie die Überschrift schon sagt: Ich nutze Eclipse und möchte, dass die ServiceProvider-Implementierungen in meinem Projekt zu Laufzeit bekannt sind. Das geht aber bekanntlich nur wenn die .class Dateien in einer .jar mit entsprechendem Eintrag im META-INF Verzeichnis liegen. Wie kann ich das bewerkstelligen, sodass ich das Projekt immer noch debuggen kann und ohne dass ich die ServicProvider-Implementationen in ein extra Projekt verschieben muss, um das dann als jar einzubinden, bzw. das ganze Projekt exportieren muss.
 

Kevin94

Top Contributor
Es gibt ja eben (noch) kein zweites Projekt. Dass wäre wohl die komfortabelste Notlösung die mir eingefallen ist, die ServiceProvider Implementationen in ein zweites Projekt auslagern und nur dass dann exportieren und als Lib einbinden. Ich dachte halt, dass es da eine komfortablere Lösung gibt. In Netbeans wird ja afaik bei jedem Start ein .jar erstellt, dachte sowas geht in Eclipse auch.
 

Kevin94

Top Contributor
Und wie krieg ich es dann her, dass die Klassen als ServiceProvider erkannt werden? Funktioniert es wenn ich im Projekt einen META-INF Ordner mit den entsprechenden Einträgen wie bei einem .jar File erstelle?
 

Ullenboom

Bekanntes Mitglied
Ja, die META-INF/services/* in das Jar, das reicht. Wenn der ServiceLoader angeschmissen wird, durchsucht er den ganzen Klassenpfad nach genau diesem Verzeichnis. So funktionieren auch moderne Datenbanktreiber.
 

Kevin94

Top Contributor
Die Frage war ob es reicht, wenn ich in Eclipse wie normalerweise in einem .jar den META-Inf Ordner anlegen und dann das Projekt einbinde. Das es funktioniert, wenn ich's als .jar hinzufüge ist klar, das ist die normaler Vorgehensweise, wenn das das Problem wäre würde ich die Frage ja wohl kaum ins IDE-Forum stellen.

[EDIT]Es funktioniert tatsächlich, dass es den ServiceProvider findet, wenn man im src Verzeichniss genauso wie in einem .jar den META-INF Ordner anlegt. Danke Marco.[/EDIT]
 
Zuletzt bearbeitet:

Ullenboom

Bekanntes Mitglied
Ja und die Erklärung sagt, warum das so ist: Wegen dem Klassenlader. In einem Eclipse-Projekt bekommt der Klassenlader direkt die Klassen aus dem Pfad, sonst aus dem Jar.
 

Galaktos

Neues Mitglied
Bin über Google über das Thema hier gestoßen und weil für mich aus den obigen Antworten noch nicht direkt ersichtlich war, wie die Projekte organisiert sein müssen (erforderte noch ca. 15 Minuten rumprobieren), dachte ich, ich schreibe das einfach mal für andere Suchende hier noch einmal klipp und klar hin:
  1. Zwei Projekte (ich nenne sie mal PluginLoader und Plugin)
  2. PluginLoader enthält die Service-Definition (Interface oder abstrakte Klasse) und verwendet den ServiceLoader
  3. Plugin enthält eine Klasse, die den Service implementiert
  4. Plugin ist im Build Path von PluginLoader enthalten
  5. Plugin muss auch Zugriff auf die Klassen von PluginLoader haben. Da ein zirkulärer Build Path nicht erlaubt ist, fügen wir nicht das Projekt PluginLoader, sondern seinen /bin/-Ordner zum Build Path von Plugin hinzu (Libraries - Add Class Folder)
  6. Plugin/src enthält einen /META-INF/services/-Ordner mit den von ServiceLoader benötigten Dateien.
 

Bartertown

Mitglied
Hallo,

Ich will gerade den Service Provider so organisieren, wie Galaktos beschrieben hat, aber ich komme da nicht weiter - auch nicht per Anhalter...

Also

  • Das PLUGIN_LOADER hat im buildpath das Projekt PLUGIN
  • Das PLUGIN hat im buildpath den classfolder von PLUGIN_LOADER

Das Verzeichnis von PLUGIN/src sieht so aus:

PLUGIN
•src
•mypackage​
•META-INF
•services
servicepackage.IPlugin​




Bei meiner Anwendung wird das Plugin nicht erkannt, was habe ich falsch gemacht ?
 

Bartertown

Mitglied
Ich hätte es jetzt, das META-INF ist im bin Verzeichnis.

PLUGIN
•bin
•mypackage​
•META-INF
•services
servicepackage.IPlugin​
•src
•mypackage​

TX ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Eclipse beim Ausführen zur Eingabe in die Konsole springen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
T Eclipse Java Projekt funktioniert in Eclipse, aber nach export kein Dateizugriff IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
M Eclipse oder IntelliJ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
JonasM Gibt es eine Libary in Eclipse mit der ich Daten per USB an einen Microkontroller Senden kann? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
N Erstellen einer ausführbaren jar Datei in Eclipse (Linux Mint) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 17
O Eclipse stürzt beim Autovervollständigen ab IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 17
C In Eclipse Einrückung im Java-Editor einstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
Avalon html ist nicht html in eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
A Docker im Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
Robertop Eclipse resolved Target-Platform nicht wegen automatischem HTTPS IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
C Eclipse englisch, deutsche Kommentare leider rot unterkringelt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T Eclipse von Java 1.8 auf 17 IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
S [Eclipse] Zwei verschiedene Konfigurationen erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
A Eclipse Projekt-Umzug mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
D Eclipse Eclipse und OpenGL IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
M Ausführbares Programm aus Eclipse exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
Java00User00 Eclipse Theme IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
F Eclipse für Java 1.8 ARM einrichten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
D Crawler funktioniert in intellij aber in Eclipse nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
U Problem mit Eclipse - WindowBuilder - memoryLeak? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
F Eclipse - Änderung am Code ohne Applikation Neustart IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
E Hilfe mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
B Eclipse version control System das ohne Internet funktioniert/nur lokal auf Computer? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
B Eclipse Problem mit jar Datei? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
N Eclipse erzeugt plötzlich keine (default package) mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 24
F alle Eclipse Projekte auf git hochladen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
O Java Eclipse Umlaute werden nicht richtig dargestellt in Konsole IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
B .exe Datei für Eclipse Java Programm erstellen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
Eclipse Build path duplication entry IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
B Wie nicht-java Datei mit Eclipse benutzen (Excel Datei einlesen)? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 16
T GlassFish mit Eclipse, Dynamic Web Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
nbergmann Eclipse Eclipse-Concole: Ergebnis-Zahlenfolge erscheint kurz und verschwindet dann wieder IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 21
berserkerdq2 Eclipse Eclipse führt nicht dei Klasse aus, bei der ich bin, muss das immer manuell ändern, was tun? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
MiHimbert Eclipse + Wildfly26 + primefaces11 + openjdk18 IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 22
S Eclipse Umlaute IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
S Fehlermeldung bei Nutzung Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
LimDul IDEA IntelliJ Tipps für den Umstieg von Eclipse auf intelliJ IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
Robertop Maven Warnung "'version' contains an expression but should be a constant" in Eclipse verstecken IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
J Eclipse - kein Server verfügbar zum ausführen meines Java Projektes IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
P PHP Skript wird nicht mit highlights markiert(Eclipse) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
B Eclipse Autovervollständigung zeigt nicht alle Methoden einer Klasse an IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
P Eclipse- Zip Datei als Prgramm IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
T Eclipse scheint awt Libary nicht zu besitzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
G eclipse mit neuestem JDK einrichten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
P Cucumber Plugin Installation . Eclipse Warnmeldung IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J Eclipse CDT Library einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
J Javac File generieren Eclipse oder IntellJ (JNI) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
sham5 Eclipse-Remote-Debugging von Java mit mehreren Prozessen oder Ports oder Netzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
Eichi1979 Eclipse Fehler in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
Arita wie kann man die automatische erstellte Ordner von Eclipse in D Drive ziehen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
nonickatall paho.client.mqttv3 in Eclipse installieren/einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
A Einbindung von FXML-Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
A JavaFX in Eclipse einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 22
nonickatall Remote Debugging Eclipse/Raspberry IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
H Outline Fenster (Gliederung) wird mit deutschem Sprachpaket nicht angezeigt, Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Kann EGit nicht auf Eclipse installieren? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
Tobero Eclipse Eclipse zeigt mir alles als Warnung an IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
B Versionen kontrollieren / dokumentieren mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
keinLebenNurCode Eclipse Eclipse: Gelbes Hilfsfenster für Funktionen und Methoden anzeigen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
windl Probleme mit Eclipse unter Linux IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
H Eclipse Fehler beim starten des Projekts IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
B Kompilieren in Eclipse ( 2 Klasse ohne main()-Methode) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
N Eclipse debug Gradle-Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
R Eclipse-Fehler IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
M Eclipse - Fehlermeldung bei JavaFX-Projekt "java.lang.module.FindException: Module javafx.controls not found" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 23
P ERROR: org.eclipse.equinox.p2.engine code=0 session context was:(profile=C__Users_birgit_eclipse_java-2020-124_eclipse, phase=org.eclipse.equinox.inte IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
H eclipse Fehler: Hauptklasse konnte nicht gefunden - bei Umwandlung in git IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
H Eclipse - Refactoring - mehrere Pakete geleichzeitig verschieben IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T Eclipse, Console gibt Fragezeichen zurück. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
N Eclipse aus Java-Application JavaFX machenModule javafx.controls not found IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
K Eclipse Einstellung "kaputt" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G Java Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
M Einzelne Java-Dateien mit Eclipse compilieren - Wie geht das? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
Robertop Eclipse Eclipse Startprobleme "Java was started but returned exit code=1" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
Splayfer Problem mit der Eclipse Autovervollständigung... IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
ruutaiokwu Eclipse inkonsistent?? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T Eclipse - Keine Vorschläge außerhalb main-Methode IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
S Java8 Eclipse Nutzer will auf Java14 wechseln IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
H kann in Eclipse org.junit nicht importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
C Eclipse Plugin ClassLoader IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
T Eclipse: Projekt aus meinem Workspace als Library auswählen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
ruutaiokwu Eclipse Eclipse-Plugin für UML "Reverse Engineering", um aus Code Klassendiagramme zu erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
OSchriever Eclipse: JavaFX mit JDK11 nutzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S Wie importiere ich am besten grosse Projekte in Eclipse am Beispiel von Apache ANT IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
U Eclipse und Tab Order IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
OSchriever Eclipse Eclipse - Automatischer import von Klassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
W Eclipse Eclipse: Blöcke farblich markieren ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
OSchriever Eclipse startet nicht mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
H Eclipse Plug-in -> Fehler bei org.eclipse.e4.tools.bundle.spy IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
H Eclipse Che 7 Git Commit IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
H Eclipse Sipmles Plug-in laesst sich nicht starten -> window.getShell() IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Eclipse JavaFX JDK 12 - bekomme mein Projekt nicht mehr compiliert IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 36
coolian warum bekomm ich immer wieder wenn ich irgendwas mach eine java.lang.nullpointer exception in eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
R Eclipse Cursor Problem bei Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
I Eclipse Fehler werden nicht angezeigt (Eclipse) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S Eclipse: wie zeige ich beim Autocomplete nur die Methoden der aktuellen Klasse (und nicht ihrer Elternklassen an) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
Drachenbauer Ich benutze eclipse wie stelle ich ein, dass es genau die kopierte Zeichenfolge einfügt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
O Eclipse Anfäger scheitert bereits bei der Installation von Eclipse trotz Anleitung IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
L BuildPath in eclipse Preferences nicht vorhanden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
coolian eclipse project sharing IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7

Ähnliche Java Themen

Neue Themen


Oben