今天boss提了这样一个问题:在导入的两个jar包中有两个同包同类名的类,在调用时如何区分调用的是哪个?
以前学习时我们总是被告诫尽量避免同名类出现,没怎么了解这方面的问题。boss说只要将classpath中要调用的jar路径放在前面导入即可,不太理解。在网上查询后得知,这与JVM的加载有关:
包名类名都相同,那jvm没法区分了,一般ide是会提示发生冲突而报错的,如果不报错的,那就只有第一个包被引入(在classpath路径下排在前面的包),第二个包会在classloader加载类时判断重复而忽略。
本文探讨了当两个jar包包含同包名和同类名的类时,如何通过调整classpath顺序来解决类加载冲突的问题。揭示了JVM加载机制中对于重复类的处理方式。
4843

被折叠的 条评论
为什么被折叠?



