S
SPiKEe
erstmal vorweg : ja liebe sufu-freunde ... ich habe die sufu benutzt ...
und ja : ich habe auch antworten gefunden ...
und nein : diese fürten nicht zum erfolg
worum es geht sagt schon der titel : ich möchte n plugin-system basteln ohne auf vorgefertigte frameworks zurückgreifen zu müssen
ich habe mir die varianten von Tom *ich denke ihr wisst wer gemeint ist* angesehen , welche alle auf das in JDK1.6 neue sun.misc.Service abziehlen ...
verschiedene user und auch meine erfahrungen meinten : etwas aus sun.misc.* ? ... na wenn das man gut geht ...
ich habs dann mal mit nem kleinen test-prog nach ner anleitung aus nem link getestet ... und ja ... es funktionierte ... aber es ist dann doch nicht das was ich mir vorstelle
ich weis mitlerweile durch lesen der ganzen tutorials.de-threads das der beste ansatz auf jeden fall ein einheitliches interface ist ... kein problem ... ist schnell geschrieben *kurze frage am rande ... müssen in interfaces die methoden wirklich alle PUBLIC sein ? wäre protect auch möglich ... und wenn auch nur in der implementation und nicht mal im interface selbst ?*
nun zu meinem vorhaben
eine kleine app welche als plugin-handler dient liegt in einem jar in einem verzeichnis ...
in diesem verzeichnis gibt es ein weiteres verzeichnis "plugins" ... und in diesem sollen dann die einzelnen plugins wiederum als jeweils ein jar / plugin liegen
das auslesen über (new File("./plugins")).list(); ist ja kein problem ... so weit kann ichs ja ...
nur wie lade ich nun die JAR daten ? ...
URLClassLoader *gelsen in einigen posts* scheint da ganz angebracht zu sein ... wie nutz man diesen nun aber mit REFLECTIONS *ich habe mich für reflect entschieden weil es in java.lang.* liegt und die tutorials von Sun mich annehmen lassen das es so geht* ?
oder bin ich da dann doch aufm totalen hlozweg ?
der plugin-handler soll dann halt die class instanzieren *wofür ich ja mit ClassForName n Class-objekt brauche* und eine methode invoken in der ein THIS vom plugin-handler übergeben wird *zur kommunikation untereinander* und sich die plugins je nach ihrem aufgaben-bereich beim handler anmelden *darüber müsst ihr euch nicht den kopf zerbrechen ... das läuft soweit schon ... aber halt noch nicht mit dynamisch geladenen jar-files*
wie gesagt : ich möchte halt keine verweise auf threads welche sich mit sun.misc.Service beschäftigen ...
ich habe mir viele threads zu diesem thema hier durchgelesen und es immer noch nicht begriffen ^^ ...
ich habe mich auch soweit mit Google und der java-api-doc befasst um informationen zusammeln ...
es würde vielleicht sogar reichen wenn mir jemand erklären könnte *oder einen link dazu* wie man aus geladenen JAR-files *mit URLConnection oder sowas* die klassen dann mit Class.forName(); weiterverarbeiten kann ...
ab dem punkt würde ja dann meine überlegung mit reflections schon funktionieren ...
ich weis das ich einigen mit einem erneuten thread zu diesem lang und breit diskutiertem thema ziemlich auf die nerven gehe und möchte mich dafür natürlich in höflichster form entschuldigen ...
nur bin ich scheinbar zu blöd aus den bereits vorhanden threads das wichtige zu lernen um es selbst zu versuchen ... kurz : ich hab diesen thread nur eröffnet da ich die anderen nicht begreife und erklärungs-bedarf habe =)
ps : zur kleinen info : ich arbeite bereits seit JDK1.4.2 mit java ... habe mich bis jetzt jedoch nur größtenteils mit netzwerk-programmierung beschäftigt *server-client und client-client konzepte*
von daher waren meine hauptsächlichen import anweisungen immer nur java.io.*; java.nio.*; und java.net.*;
pps : und wenn ihr mir schon tut-interne links gebt ... dann auch bitte eine grobe erklärung ... da ich aus den meisten hier einfach nicht schlau werde ..
BESTEN DANK IM VORRAUS
und ja : ich habe auch antworten gefunden ...
und nein : diese fürten nicht zum erfolg
worum es geht sagt schon der titel : ich möchte n plugin-system basteln ohne auf vorgefertigte frameworks zurückgreifen zu müssen
ich habe mir die varianten von Tom *ich denke ihr wisst wer gemeint ist* angesehen , welche alle auf das in JDK1.6 neue sun.misc.Service abziehlen ...
verschiedene user und auch meine erfahrungen meinten : etwas aus sun.misc.* ? ... na wenn das man gut geht ...
ich habs dann mal mit nem kleinen test-prog nach ner anleitung aus nem link getestet ... und ja ... es funktionierte ... aber es ist dann doch nicht das was ich mir vorstelle
ich weis mitlerweile durch lesen der ganzen tutorials.de-threads das der beste ansatz auf jeden fall ein einheitliches interface ist ... kein problem ... ist schnell geschrieben *kurze frage am rande ... müssen in interfaces die methoden wirklich alle PUBLIC sein ? wäre protect auch möglich ... und wenn auch nur in der implementation und nicht mal im interface selbst ?*
nun zu meinem vorhaben
eine kleine app welche als plugin-handler dient liegt in einem jar in einem verzeichnis ...
in diesem verzeichnis gibt es ein weiteres verzeichnis "plugins" ... und in diesem sollen dann die einzelnen plugins wiederum als jeweils ein jar / plugin liegen
das auslesen über (new File("./plugins")).list(); ist ja kein problem ... so weit kann ichs ja ...
nur wie lade ich nun die JAR daten ? ...
URLClassLoader *gelsen in einigen posts* scheint da ganz angebracht zu sein ... wie nutz man diesen nun aber mit REFLECTIONS *ich habe mich für reflect entschieden weil es in java.lang.* liegt und die tutorials von Sun mich annehmen lassen das es so geht* ?
oder bin ich da dann doch aufm totalen hlozweg ?
der plugin-handler soll dann halt die class instanzieren *wofür ich ja mit ClassForName n Class-objekt brauche* und eine methode invoken in der ein THIS vom plugin-handler übergeben wird *zur kommunikation untereinander* und sich die plugins je nach ihrem aufgaben-bereich beim handler anmelden *darüber müsst ihr euch nicht den kopf zerbrechen ... das läuft soweit schon ... aber halt noch nicht mit dynamisch geladenen jar-files*
wie gesagt : ich möchte halt keine verweise auf threads welche sich mit sun.misc.Service beschäftigen ...
ich habe mir viele threads zu diesem thema hier durchgelesen und es immer noch nicht begriffen ^^ ...
ich habe mich auch soweit mit Google und der java-api-doc befasst um informationen zusammeln ...
es würde vielleicht sogar reichen wenn mir jemand erklären könnte *oder einen link dazu* wie man aus geladenen JAR-files *mit URLConnection oder sowas* die klassen dann mit Class.forName(); weiterverarbeiten kann ...
ab dem punkt würde ja dann meine überlegung mit reflections schon funktionieren ...
ich weis das ich einigen mit einem erneuten thread zu diesem lang und breit diskutiertem thema ziemlich auf die nerven gehe und möchte mich dafür natürlich in höflichster form entschuldigen ...
nur bin ich scheinbar zu blöd aus den bereits vorhanden threads das wichtige zu lernen um es selbst zu versuchen ... kurz : ich hab diesen thread nur eröffnet da ich die anderen nicht begreife und erklärungs-bedarf habe =)
ps : zur kleinen info : ich arbeite bereits seit JDK1.4.2 mit java ... habe mich bis jetzt jedoch nur größtenteils mit netzwerk-programmierung beschäftigt *server-client und client-client konzepte*
von daher waren meine hauptsächlichen import anweisungen immer nur java.io.*; java.nio.*; und java.net.*;
pps : und wenn ihr mir schon tut-interne links gebt ... dann auch bitte eine grobe erklärung ... da ich aus den meisten hier einfach nicht schlau werde ..
BESTEN DANK IM VORRAUS