您提到的“旧方法”(并且OSGI肯定会在幕后使用)是为依赖项的两个分支安装自己的ClassLoader。例如,这就是应用程序服务器能够在同一JVM中同时运行同一应用程序的旧版本和新版本的方式。
了解有关类加载器层次结构的信息。
在您的设置中,棘手的部分是连接点,两个分支的类在这里汇合。两个分支都不能使用加载到另一个分支中的类。使其工作的方法是确保仅将引导类加载器(JRE类)或MY.jar的类加载器加载的类传递到两个分支。

您提到的“旧方法”(并且OSGI肯定会在幕后使用)是为依赖项的两个分支安装自己的ClassLoader。例如,这就是应用程序服务器能够在同一JVM中同时运行同一应用程序的旧版本和新版本的方式。
了解有关类加载器层次结构的信息。
在您的设置中,棘手的部分是连接点,两个分支的类在这里汇合。两个分支都不能使用加载到另一个分支中的类。使其工作的方法是确保仅将引导类加载器(JRE类)或MY.jar的类加载器加载的类传递到两个分支。