Nachladen von unbekannten Class-Files im JAR-Archiv

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo erstmal alles zusammen,

Ich weiß weder ob mein Titel so toll ist oder ob das hier das richtige Unterforum ist, dehalb schonmal sorry vor weg :wink:

Also folgendes Problem: Ich habe hier eine Art Middleware, die als JAR-File "ausgeliefert" wird und scripte in Form von class files, die an sie gesendet werden, ausführt. Das funzt schon alles wunderbar. Jetzt stehe ich vor dem Problem, dass bereits beim deployment bestimmte class files mit in das JAR-Archiv gepackt werden sollen, damit sie ohne den Umweg des Sendens direkt ausgeführt werden. Das Problem ist, dass es bei jedem Deployment unterschiedliche, benutzerspezifische class files sind, deren einzige Gemeinsamkeit darin liegt ein bestimmtes Interface zu implementieren.

Meine Überlegung war bisher, dem Benutzer/Entwickler ein Verzeichnis zur verfügung zu stellen, in dem er alle seine class files, die beim start der Middleware geladen werden sollen, rein wirft. Dann wollte ich mit einem Ant-Script - blauäugig wie ich bin - alle umbenennen in Class1.class, Class2.class etc. und in das JAR-Archiv packen. Dann beim start der Middleware einfach die Klassen Class* durchiterieren. Aber das klappt natürlich nicht, da JAVA meckert, dass der Class-Name nicht mit der enthaltenen Klasse übereinstimmt.

Nun bräuchte ich eure Hilfe, wie ich an das Problem am besten ran gehe. Mir wär schon ziemlich wichtig, dass man das vorgehen mit dem Ordner, in dem man alles rein wirft beibehält aber für alles andere bin ich für jeden Vorschlag offen und dankbar!
 

foobar

Top Contributor
Warum willst du die Classfiles umbennen?

Reicht es nicht alle Classfiles in einen festgelegten Ordner zu legen und von dort aus mit einem UrlClassloader zu laden?
 

FArt

Top Contributor
Du könntest alle Klassen laden und schauen (Reflection), ob sie ein bestimmtes Interface implementieren.

... ist aber mehr als unschön...

Schöner: es gibt eine Metainformationsdatei an jeder Deploymentunit, die solche Klassen enthalten kann. Beim Programmstart sammelst du diese alle auf (Klassenpfad durchsuchen) und führst sie aus. Wenn zur Laufzeit welche dazukommen können, musst du halt ein Verzeichnis überwachen usw.

Damit kannst du auch komplexere Abläufe abbilden (z.B. wenn diese Dinger mal Abhängigkeiten untereinander aufweisen)...
 

ich3k

Neues Mitglied
Sorry war grad beim Thread erstellen nicht eingelogt...

Also wie gesagt Laufzeit ist kein Thema, das funzt alles schon so wie es soll ... class-files, jar-archive, native-code alles kein Thema.

@foobar
Ja aber davon weiß ich doch noch nicht welche Klassen er geladen hat, oder doch? Das Problem ist ja, dass ich von jeder geladenen Klasse ein Objekt erzeugen muss, damit es überhaupt zur Ausführung kommen kann.

@FArt
Wenn ich ehrlich bin kenn ich mich mit JAR-Archiven nicht wirklich gut aus. Kann ich die wie ein Normales Dateisystem durchsuchen? Die Idee mit den Meta-Informationen klingt gut. Kann ich denn auf das Metainformationen des JAR-Files ohne größeren Aufwand zur Laufzeit zugreifen? Bin ich bei java.util.jar.Manifest richtig?

Was ich vielleicht noch anmerken sollte, ich würde gerne Arbeiten auf dem Dateisystem bei der Laufzeit vermeiden, da das ganze auch irgendwann auf irgendwelchen eingebetteten Systemen laufen soll, die wahrscheinlich nur ne JVM besitzen und ich weiß nicht ob es da überhaupt sowas wie nen Dateisystem gibt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Maven2 inherited docs nachladen Tools - Maven, Gradle, Ant & mehr 4
H Maven2 -> Nachladen der Dependencies Tools - Maven, Gradle, Ant & mehr 4
M Nachladen von Frames Tools - Maven, Gradle, Ant & mehr 6
D Ressourcen nachladen Tools - Maven, Gradle, Ant & mehr 2
B Klassen nachladen Tools - Maven, Gradle, Ant & mehr 5
H Problem beim Verschieben der main-class -> A jni error has occured, please check... Tools - Maven, Gradle, Ant & mehr 9
A Applet: Html Datei und Class Datei nicht im selben Verzeichnis Tools - Maven, Gradle, Ant & mehr 2
M Jar kann nicht gestartet werden - main Class not found Tools - Maven, Gradle, Ant & mehr 5
F Ant ANT javac class-Dateien von entfernten JAVA-Klassen löschen Tools - Maven, Gradle, Ant & mehr 11
K Webstart .class Datei über Reflection laden Tools - Maven, Gradle, Ant & mehr 3
AlexSpritze Ant Frage zu manifest-class-path mit Target jar Tools - Maven, Gradle, Ant & mehr 1
B Applet (Class-Datei(en)) in Html-Seite einbinden - Clipboard Tools - Maven, Gradle, Ant & mehr 13
S Sonderzeichen in class dateien? Tools - Maven, Gradle, Ant & mehr 4
A mehrere class.dateien Tools - Maven, Gradle, Ant & mehr 10
K .class variabel laden Tools - Maven, Gradle, Ant & mehr 21
H .class in .java umformen Tools - Maven, Gradle, Ant & mehr 6
sparrow Ladevorgang von Applets (jar/class) Tools - Maven, Gradle, Ant & mehr 2
D Problem beim einbinden von jar und class datei Tools - Maven, Gradle, Ant & mehr 8
J Editor für ".class"-Dateien? Tools - Maven, Gradle, Ant & mehr 3
L class not found - und warum??? Tools - Maven, Gradle, Ant & mehr 6
A Wie kann man Quelltext von .class Datei sehen? Tools - Maven, Gradle, Ant & mehr 2

Ähnliche Java Themen

Neue Themen


Oben