Heim >Java >javaLernprogramm >Wie kann ich JAR-Dateien einer laufenden Java-Anwendung neu laden oder hinzufügen?
JAR-Dateien zur Laufzeit neu laden und laden
Damit Ihr Java-System während der Ausführung Klassen laden und neu laden kann, beachten Sie Folgendes:
Vorhandene Klassen neu laden
Versuch Das Neuladen vorhandener Klassen mit ihren Daten ist im Allgemeinen nicht ratsam, da dies zu Systeminstabilität führen kann.
Neue Klassen hinzufügen
Das Laden neuer Klassen in separate Klassenlader ist eine praktikable Option:
ClassLoader loader = URLClassLoader.newInstance(new URL[] { yourURL }, getClass().getClassLoader()); Class<?> clazz = Class.forName("mypackage.MyClass", true, loader); Class<? extends Runnable> runClass = clazz.asSubclass(Runnable.class); Constructor<? extends Runnable> ctor = runClass.getConstructor(); Runnable doRun = ctor.newInstance();
Klassenlader-Müll Sammlung
Klassenlader, die nicht mehr verwendet werden, können vom Garbage Collector zurückgefordert werden, vorausgesetzt, es liegen keine Speicherlecks vor (die bei ThreadLocal, JDBC-Treibern usw. auftreten können).
Datenpersistenz
Um Objektdaten über Klassenneuladungen hinweg beizubehalten, sollten Sie Persistenzmechanismen in Betracht ziehen wie Serialisierung.
Ausgefallene Debugging-Tricks
Obwohl Debugging-Systeme erweiterte Funktionen bieten, sind sie oft weniger zuverlässig und schwieriger zu debuggen.
Hinzufügen Klassen zu einem vorhandenen Klassenlader
Obwohl URLClassLoader das Hinzufügen neuer Klassen ermöglicht URLs: Wenn eine Klasse anfänglich nicht geladen werden kann, wird sie nie innerhalb dieser Klassenlader-Instanz geladen.
Das obige ist der detaillierte Inhalt vonWie kann ich JAR-Dateien einer laufenden Java-Anwendung neu laden oder hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!