私は Java クラスローダについて多くのことを読みましたが、これまでのところ、この単純な質問に対する答えを見つけることができませんでした:
jar v1.jarとv2.jarにcom.abc.Hello.classの 2 つのバージョンがあります。アプリケーションで両方を使用したい。これを行う最も簡単な方法は何ですか?
私はそれほど単純であるとは思っていませんが、これらの線に沿ったものは素晴らしいでしょう:
Classloader myClassLoader = [magic that includes v1.jar and ignores v2.jar]
Hello hello = myclassLoader.load[com.abc.Hello]
そして別のクラスで:
Classloader myClassLoader = [magic that includes v2.jar and ignores v1.jar]
Hello hello = myclassLoader.load[com.abc.Hello]
OSGi の使用は避けたいと思います。