Java - comment charger les différentes versions de la même classe?

J'ai lu beaucoup de choses sur Java chargeurs de classes, mais jusqu'à présent, je n'ai pas réussi à trouver une réponse à cette simple question:

J'ai deux versions de com.abc.Hello.class dans des bocaux v1.jar et v2.jar. Je veux utiliser les deux dans mon application. Quelle est la façon la plus simple de faire cela ?

Je ne m'attends pas à être aussi simple que cela, mais quelque chose le long de ces lignes serait génial :

Classloader myClassLoader = [magic that includes v1.jar and ignores v2.jar]
Hello hello = myclassLoader.load[com.abc.Hello]

Et dans une classe différente :

Classloader myClassLoader = [magic that includes v2.jar and ignores v1.jar]
Hello hello = myclassLoader.load[com.abc.Hello]

Je voudrais éviter d'utiliser OSGi.

  • Personnellement, je ne pense pas que je voudrais une telle magie car elle conduirait à une opération de maintenance/dépannage cauchemar... pourriez-vous expliquer pourquoi vous avez besoin de cela?
  • Plusieurs plugins qui dépendent de différentes versions de la même bibliothèque partagée serait une raison pour cela.
InformationsquelleAutor kms333 | 2012-08-01