Hallo, ich wollte mal Fragen, wie ich am einfachsten in Java eine PlugIn-Schnittstelle implantiere. In .Net ist das für mich kein Problem, da braucht man nur ein Interface im Hauptprogramm zu erstellen, erstellt eine Libary-Projekt, welches dieses Interface "mit Leben ausfüllt" und schon kann man diese Libary in der Hauptanwendung mittels "System.Reflection.Assembly.LoadFile" laden und benutzen. Aber gut, da .Net nicht wirklich für Linux geeignet ist, kann ich leider .Net nicht nutzen. In JAVA scheint das ja leider nicht so einfach zu geh'n. Könnte mir evtl. da einer helfen, wie ich das möglichst einfach umsetzten kann? Wenn es nicht zu kompliziert ist, wäre ein kleiner Code-Schnippsel für mich am besten. Vielen Danke schonmal! Julian
Hi, * Schonmal was von mono gehoert? * Klasse nachladen: Class myPluginClass = Class.forName("bla.blub.plugin"); * Instantiieren: Object myPlugin = myPluginClass.newInstance(); Das ist natuerlich die unsaubere Variante. Wenn dus genauer haben willst kannst du das ganze auch mit einem Interface und den Klassen "Constructor" und "Method" machen. Das geht da recht huebsch mit. Gruesse Marvin
Eine Möglichkeit wäre, das ganze Project als Elcipse/Equinox RCP Anwendung zu schreiben. http://www.ralfebert.de/rcpbuch/overview/
So, schon mal Danke für die Antworten. Mono ist mir bekannt, ich sehe das ganze aber eher als "Notlösung" an und nehme es ehrlich gesagt nicht so ernst, da einfach viele Funktionen fehlen und viele zusätzliche Bibliotheken, wie z.B. viele UI-Komponenten aus Drittbibliotheken unter Mono nicht funktionieren.
1 | Class myPluginClass = Class.forName("bla.blub.plugin"); |
2 | myPlugin = myPluginClass.newInstance(); |
Das hört sich schon recht einfach an. Nur wie muss ich das oben mit dem Class.forName("bla.blub.plugin"); verstehen. Die PlugIn's werden ja wohl in einem Unterordner sein. Woher will JAVA denn dann wissen, woher es die PlugIn's laden muss!? Und die Möglichkeit als Elcipse/Equinox RCP hab ich mir auch schon angesehn, jedoch empfinde ich das ganze als "Overkill". Das PlugIn soll später in einem Verwaltungsprogramm als Schnittstelle zwischen Programm und Online-Shops, wie z.B. reichelt und conrad, fungieren, um dort die Preise zu ermitteln. Von daher werden keine "komplexen" PlugIn's benötigt.
Julian W. schrieb: > Das hört sich schon recht einfach an. Nur wie muss ich das oben mit dem > Class.forName("bla.blub.plugin"); verstehen. Die PlugIn's werden ja wohl > in einem Unterordner sein. Woher will JAVA denn dann wissen, woher es > die PlugIn's laden muss!? Die muessen natuerlich im CLASSPATH sein. Alternativ kannst du dich mit Classloadern beschaeftigen. Ohne ein wenig Grundlagenarbeit wirst du aber weder so noch so sonderlich gut weiterkommen...
Ah, google mal mit besseren Suchbegriffen gefüttert (Danke für das Wort Refelction, das hab ich gebraucht) und schon was brauchbares gefunden: http://www.java-blog-buch.de/d-plugin-entwicklung-in-java/ Das sieht schon mal brauchbar aus...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.