Heim > Java > javaLernprogramm > Wie kann ich Java-Klassen und JAR-Dateien in einem laufenden System dynamisch laden und neu laden?

Wie kann ich Java-Klassen und JAR-Dateien in einem laufenden System dynamisch laden und neu laden?

DDD
Freigeben: 2024-12-04 18:17:11
Original
342 Leute haben es durchsucht

How Can I Dynamically Load and Reload Java Classes and JAR Files in a Running System?

Neuen Code in ein laufendes Java-System laden

Klassen neu laden

Vorhandene Klassen neu laden mit Vorhandene Daten können zu Instabilität in Ihrem System führen. Erwägen Sie stattdessen die Verwendung des folgenden Ansatzes:

  • Instanziieren Sie einen neuen URLClassLoader mit dem Pfad zur aktualisierten JAR-Datei.
  • Laden Sie die neuen Klassen in den neuen Klassenlader und wandeln Sie sie in ihren um entsprechende Unterklassen.
  • Erstellen Sie eine Instanz der geladenen Klasse und führen Sie den Lauf aus Methode.

Neue JAR-Dateien laden

So laden Sie eine neue JAR-Datei in ein laufendes Java-System:

  1. Erstellen Sie eine URLClassLoader mit der URL der neuen JAR-Datei.
  2. Verwenden Sie ClassLoader.newInstance Methode zum Erstellen einer neuen Instanz des Klassenladers.
  3. Laden Sie die neuen Klassen mit Class.forName in den neuen Klassenlader.
  4. Instanziieren Sie die geladenen Klassen und führen Sie alle erforderlichen Aktionen aus.

Müllsammlung nicht verwendeter Klassenlader

Klassenlader, die nicht verwendet werden Länger genutzte Dateien werden im Garbage Collection gesammelt, sofern keine Speicherlecks vorliegen. Zu den häufigsten Quellen für Speicherlecks gehören ThreadLocal, JDBC-Treiber und java.beans.

Objektdaten beibehalten

Wenn Sie benötigen, dass Objektdaten über Klassenneuladungen hinweg bestehen bleiben, sollten Sie die Verwendung in Betracht ziehen ein Persistenzmechanismus wie die Serialisierung.

Hinzufügen neuer Klassen zu einer vorhandenen Klasse Lader

Es ist zwar möglich, mithilfe von URLClassLoader.addURL neue Klassen zu vorhandenen Klassenladern hinzuzufügen. Beachten Sie jedoch, dass eine Klasse, wenn sie während dieses Vorgangs nicht geladen werden kann, in dieser Klasse nicht geladen werden kann Loader-Instanz.

Das obige ist der detaillierte Inhalt vonWie kann ich Java-Klassen und JAR-Dateien in einem laufenden System dynamisch laden und neu laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage