Maison >Java >javaDidacticiel >Comment puis-je recharger ou ajouter des fichiers JAR à une application Java en cours d'exécution ?
Rechargement et chargement des fichiers JAR au moment de l'exécution
Pour permettre à votre système Java de charger et de recharger des classes pendant l'exécution, considérez ce qui suit :
Rechargement des classes existantes
Tentative de recharger les classes existantes avec leurs données est généralement déconseillé car cela peut entraîner une instabilité du système.
Ajout de nouvelles classes
Le chargement de nouvelles classes dans des chargeurs de classes distincts est une option viable :
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();
Déchets du chargeur de classe Collection
Les chargeurs de classes qui ne sont plus utilisés peuvent être récupérés par le garbage collector, en supposant qu'il n'y ait pas de fuite de mémoire (ce qui peut survenir avec ThreadLocal, les pilotes JDBC, etc.).
Persistance des données
Pour préserver les données des objets lors des rechargements de classe, envisagez des mécanismes de persistance tels que sérialisation.
Astuces de débogage sophistiquées
Bien que les systèmes de débogage offrent des fonctionnalités avancées, ils sont souvent moins fiables et plus difficiles à déboguer.
Ajout Classes vers un chargeur de classe existant
Bien que URLClassLoader permette en ajoutant de nouvelles URL, si une classe ne parvient pas à se charger initialement, elle ne se chargera jamais dans cette instance de chargeur de classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!