在運行時重新加載和加載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中文網其他相關文章!