2010-01-05 8 views
0

J'essaie d'obtenir cette chose avec l'utilisation de différents ClassLoaders pour travailler sans succès et je suis désespéré. Ce que j'essaie de faire est de lancer 2 instances différentes d'un programme tiers qui a été créé avec plusieurs attributs statiques et qui ne peut donc pas être simplement instancié deux fois dans mon code. Il m'a été conseillé d'utiliser différents ClassLoaders pour charger le fichier .jar, même si je ne sais pas vraiment comment procéder. Est-ce que je pourrais peut-être avoir quelques indications sur où je pourrais commencer?Aide en utilisant ClassLoaders

Je dois aussi passer un objet de mon propre programme à cette instance de programme et j'ai aussi aucune idée de la façon dont je pourrais le faire ...

Merci d'avance pour l'aide, André

PS: Toute cette discussion a commencé dans le java forums, donc il ya une description plus détaillée de ce que je dois faire et pourquoi j'ai besoin de faire cela. Le conseil que je fais référence à ce poste était de malcommmc:

Une autre approche pourrait consister à faire fonctionner le système tout dans une machine virtuelle Java, mais créer une nouvelle classloader pour chaque instance de le 3 code parti et assurez-vous que les classes contenant la statique incriminée ne peuvent être chargées que par ces nouveaux chargeurs de classe . Dans ces conditions la JVM peut prendre en charge plusieurs copies de la même classe, à condition que le FQN soit unique dans un chargeur de classe.

Dans ce cas, chaque instance exécuté comme un thread séparé, et définissez classe contexte du fil du chargeur pour pointer vers le chargeur de classe concernée.

On peut supposer que l'objet que vous proposez de passer est spécifié avec une interface ou classe abstraite connue à l'application 3ème partie. Vous avez besoin que interface être connue du système chargeur de classe, soit sur le chemin de la classe, mais les principales classes de la 3e application partie ne doit pas être sur le classpath, mais ACCESSIBLES comme un pot référencé par un URLClassLoader.

Répondre

-1

Cela a déjà été résolu dans les forums Java - lien fourni dans la question

+0

Link est mort maintenant. Veuillez résumer en vos propres termes les réponses que vous trouvez ailleurs. –

Questions connexes