两个具有相同包名,相同类名和相同方法名的罐子

时间:2019-11-25 10:37:03

标签: java spring-boot java-8 jar classloader

我在使用两个罐子的spring boot应用程序中遇到此问题。在这些jar中,有两个类具有相同的程序包名称和相同的类名称,以及一个方法具有相同的名称。当类加载器从不同的jar加载类并尝试调用此方法时,会发生问题。如果首先加载jar A,则调用方法,并且一切正常,但是如果首先调用jar B,则在运行时引发NOSUCHMETHODERROR异常。您能帮忙解决此问题吗?有没有一种方法可以迫使类加载器首先在Spring启动应用程序中首先加载特定的jar,或者可能对此进行任何其他修复。

注意:我正在使用JAVA 8,但无法访问这些jar文件的源代码。

1 个答案:

答案 0 :(得分:0)

如果您将这些jar作为依赖项加载,则可以通过

将其从Maven中排除
<exclusions>
   <exclusion>
       <groupId>org.XXXX</groupId>
        <artifactId>jar1-api</artifactId>
    </exclusion>
</exclusions> 
相关问题