据this question,它可以从一个jar文件中加载类:如何在运行时加载所有类的jar文件?
ClassLoader loader = URLClassLoader.newInstance(
new URL[] { jarFileURL },
getClass().getClassLoader()
);
Class<?> clazz = Class.forName("mypackage.MyClass", true, loader);
如何加载包含在一个jar文件中的所有类?
你为什么要这样做? – mcfinnigan
不成熟的优化?无法容忍代码的关键部分的延迟?无论如何,在这种情况下,最好在关键部分之前制作每个“关键”部分的对象。 –
下面是一个实际的用例:如果你编写一个像getdown(http://code.google.com/p/getdown/)这样的更新工具,并且替换你自己的jar(忽略这可能有点脆弱),那么这个类我们尝试的加载器无法加载新类(因为文件句柄可能无效)。如果我们预先加载所有需要更新的结束的类,那么我们很好。 – mringwal