猿问

如何在运行时加载JAR文件

如何在运行时加载JAR文件

我被要求构建一个Java系统,它能够在运行时加载新代码(扩展)。如何在代码运行时重新加载JAR文件?或者如何装入一个新的罐子?

显然,由于持续的启动时间很重要,我想在它的同时添加重新加载现有类的能力(如果它不太复杂的话)。

我该注意什么?(把它看作两个不同的问题-一个是关于在运行时重新加载类,另一个是关于添加新类)。


互换的青春
浏览 804回答 3
3回答

aluckdog

这对我有用:File file  = new File("c:\\myjar.jar");URL url = file.toURL();  URL[] urls = new URL[]{url}; ClassLoader cl = new URLClassLoader(urls);Class cls = cl.loadClass("com.mypackage.myclass");

千巷猫影

我被要求构建一个java系统,它能够在运行时加载新代码。你可能想把你的系统建立在OSGi(或者至少花了很多时间),这正是为这种情况而做的。处理类加载器是一项非常棘手的工作,主要是因为类的可见性是如何工作的,而且您以后也不希望遇到难以调试的问题。例如,Class.forName(),它在许多库中被广泛使用,但在支离破碎的类加载器空间中不能很好地工作。
随时随地看视频慕课网APP

相关分类

Java
我要回答