在运行时重新加载和加载 JAR 文件
要使 Java 系统能够在运行时加载和重新加载类,请考虑以下事项:
重新加载现有的类
尝试重新加载现有类及其数据通常是不可取的,因为这可能会导致系统不稳定。
添加新类
将新类加载到单独的类加载器中是可行的选项:
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();
类加载器垃圾回收
不再使用的类加载器可以由垃圾收集器回收,假设没有内存泄漏( ThreadLocal、JDBC 驱动程序等可能会发生这种情况)。
数据持久性
要在类重新加载时保留对象数据,请考虑序列化等持久性机制。
花哨的调试技巧
虽然调试系统提供了先进的能力,它们通常不太可靠且更难debug.
向现有类加载器添加类
虽然 URLClassLoader 允许添加新 URL,但如果类最初加载失败,它将永远不会在该类加载器中加载实例。
以上是如何将 JAR 文件重新加载或添加到正在运行的 Java 应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!