Ich habe einige Java-Byte-Code (so kompilierte Java-Quelle), die in meinem Programm generiert wird. Jetzt möchte ich diesen Byte-Code in die aktuell laufende Java-VM laden und eine bestimmte Funktion ausführen. Ich bin mir nicht sicher, wie ich das erreichen soll, ich habe ein wenig in die Java Classloader gegraben, aber keinen geraden Weg gefunden.Laden Java-Byte-Code zur Laufzeit
Ich fand eine Lösung, die eine class-Datei auf der Festplatte nimmt, aber der Bytecode, den ich bekam, ist in einem Byte-Array und ich möchte es nicht auf die Festplatte schreiben, sondern stattdessen direkt verwenden.
Danke!
ich unter diesem Link denken Überlastungen sollten Sie finden, was Sie suchen: http: //tutorials.jenkov. com/java-reflection/dynamic-class-loading-reloading.html Sehen Sie sich den letzten Abschnitt "ClassLoader Load/Reload Example" an. –
Meine Frage war irgendwie unklar: Ich habe keine Klassen-Datei, sondern ein Byte-Array und möchte es direkt laden. Danke trotzdem! – theomega
Und ich bin mir ziemlich sicher, dass mein Link genau das zur Verfügung stellt. Zumindest habe ich das durch es gefunden: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#defineClass (byte [], int, int) Auch Sie können Speichern Sie Ihr Byte-Array natürlich immer in einem temporären Verzeichnis. –