tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1499
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    blaiso blaiso ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    13
    Hallo zusammen,

    ich habe folgendes Problem:
    ich starte eine Java-GUI und wähle mehrere .java-Dateien aus, deren Inhalt ich um einige Informationen erweitere; ich schreibe also neue Zeilen in die .java-Dateien hinein.

    Anschließend will ich diese jetzt „infizierten“ .java-Dateien ausführen.
    Dazu brauche ich das Class-Objekt zu diesen .java-Dateien. An sich kein Problem, denn ich weiß ja, wo diese „infizierten“ Java-Dateien liegen.

    Das Problem ist aber, dass ich beim Erzeugen der Class-Objekte zu diesen .java-Dateien nur das „alte“ Class-Objekt der .java-Dateien bekomme, also das Class-Objekt zu dem Zeitpunkt, als ich meine GUI gestartet habe und die Dateien noch nicht infiziert waren..
    Ich verwende dabei einen ClassLoader, der die zu suchende Klasse neu lädt (loadClass (String name, boolean resolve) mit resolve = true). Trotzdem wird nur die alte Version der Klasse gefunden.

    Wie kann ich an das aktuelle Class-Objekt kommen, also an das Class-Objekt der bereits infizierten Dateien?
    Wenn ich zwischen dem Infizieren der Dateien und dem Ausführen die Anwendung neu starte, habe ich die aktuellen Class-Objekte. Dass liegt wohl daran, dass die Java Virtual Machine neu gestartet wird (dass will ich aber unbedingt vermeiden, weil es nicht sehr elegant ist)


    Wer kann bei diesem Problem helfen
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Ich denke, um mit deinem "speziellen" ClassLoader die neuen Klassen laden zu koennen, musst du deinen ClassLoader wegwerfen und einen neuen bauen. Ueber diesen solltest du dann die neuen Klassen laden koennen.... u.U. musst du die neu erzeugten Klassen noch dynamisch in den ClassPath mit aufnehmen... (einfach addURL Methode des ClassLoaders per Reflection zugaenglich machen und aufrufen...

    Gruss Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. Dynamisches nachladen von Klassen in EJB Applikation (JBoss)
    Von Paul_W im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 02.12.10, 15:30
  2. Antworten: 1
    Letzter Beitrag: 02.04.08, 20:50
  3. Seite nachladen ohne Bemerkung
    Von stefan frank im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 31.01.08, 09:05
  4. Frameset nachladen - auch ohne JavaScript?
    Von Annimuh im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 30.06.04, 08:53
  5. Dynamisches Nachladen von Klassen in die VM
    Von UltraViolence im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 11.10.01, 11:23