2011-07-07 59 views
4

有什么办法可以在运行时更新系统类加载器吗?在我动态加载了一个jar文件之后,有什么可以将从这个jar加载的类/包添加到我的系统类加载器中吗?Java ClassLoader - 将动态加载的罐子添加到系统类加载器

我试图做到这一点的原因是,虽然我通过在自己的代码中传递新创建的ClassLoader获得了一些成功,但我遇到了第三方库(apache-WSIF)这似乎并没有在ClassLoader中传递。

+0

可能的重复项:http://stackoverflow.com/questions/60764/how-should-i-load-jars-dynamically-at-runtime和http://stackoverflow.com/questions/194698/how-to-加载一个jar文件在运行时 – paradigmatic

+0

我不认为你可以添加任何东西到系统类加载器在运行时。原因在对paradicmatic相关问题的答案中进行了解释。 –

回答

6

我已经能够做到什么,我尝试使用以下的事情:。

Thread.currentThread()setContextClassLoader(myClassLoader);

正如在这里最多的回答讨论:How do you change the CLASSPATH within Java?

基本上,调用到WSIF库之前,我需要做的就是确保我已经把我的定制ClassLoader作为当前线程上contextClassLoader。