帮助使用ClassLoaders

时间:2010-01-05 10:59:09

标签: classloader

我正试图通过使用不同的ClassLoader来解决这个问题但没有成功,我有点绝望。我要做的是启动使用多个静态属性创建的第三方程序的2个不同实例,因此不能在我的代码中实例化两次。我被建议使用不同的ClassLoader加载.jar文件,虽然我真的不知道如何做到这一点。我可以得到一些关于我可以从哪里开始的指示吗?

我还需要将自己程序的对象传递给这个程序实例,我也不知道如何做到这一点......

提前感谢您的帮助, 安德烈

PS:整个讨论始于java forums,因此我需要做更详细的描述以及为什么需要这样做。我在这篇文章中提到的建议来自malcommmc:

  

另一种方法可能是运行   整个系统在一个JVM中,但创建一个   每个实例的新类加载器   第三方代码,并确保   包含违规的类   静态只能通过这些新的加载   班级装载机。在这些条件下   JVM可以支持多个副本   同一类,提供FQN   在类加载器中是唯一的。

     

在这种情况下,将每个实例作为a运行   单独的线程,并设置线程   上下文类加载器指向   相关的班级装载机。

     

大概是你的对象   建议通过指定   一些已知的接口或抽象类   到第三方应用程序。你需要那个   系统已知的接口   类加载器,即在类路径上,   但是第3级的主要类别   派对应用程序不得上   classpath,但可以作为jar访问   由URLClassLoader引用。

1 个答案:

答案 0 :(得分:-1)

这已经在Java论坛中解决了 - 问题中提供的链接