2010-01-05 38 views
0

我试图用不同的类加载器来获得这个东西,但没有成功,我越来越绝望。我想要做的是启动2个不同的第三方程序的实例,这是由几个静态属性创建的,因此不能在我的代码中实例化两次。我被建议使用不同的类加载器加载.jar文件,但我不知道如何做到这一点。我能否从我可以开始的地方得到一些指示?使用类加载器的帮助

我还需要我自己程序的对象传递给这个程序实例,我也没有的我怎么能做到这一点的想法...

在此先感谢您的帮助, 安德烈

PS:整个讨论开始于java forums,所以我需要做更详细的描述以及为什么我需要这样做。我指的是在这个岗位的建议是从malcommmc:

另一种方法可能是在一个JVM运行 整个系统,但对于 第三方代码的每个实例创建一个 新的类加载器和请确保 包含有问题的 静态的类只能由这些新的类加载器加载。在这些条件下,JVM可以支持 同一类的多个副本,假设类加载器中的唯一FQN为 。

在这种情况下运行的每个实例作为 单独的线程和设置线程的 上下文类加载器指向 相关的类加载器。

推测通过的对象是 与 指定给第三方应用的某些接口或抽象类已知 。你需要一个 接口是已知的系统 类加载器,即类路径, 但第三 第三方的应用绝不能在 类路径的主要类别,但作为一个参考的一个罐子 访问URLClassLoader的。

回答

-1

这已经解决了在Java论坛 - 在这个问题

+0

链接提供的链接是已经死了。请用你自己的话总结你在别处找到的答案。 – 2013-09-11 20:48:56