【发布时间】:2021-04-25 21:26:19
【问题描述】:
假设我有一个 jar a.jar 和一个类 com.company.ma.MyClass
package com.company.ma
public class MyClass {
public void someMethod() {
System.out.println("Hey");
}
}
还有另一个 jar b.jar 有一个类 com.company.ma.MyClass 但不同的实现。
package com.company.ma
public class MyClass {
public void anotherMethod() {
System.out.println("This is different");
}
}
这些类具有相同的全限定名,但它们不同。
如何在类路径中找到具有给定完整限定名的所有类,例如 com.company.ma.MyClass 并打印它的位置?在这个例子中,我希望在两个不同的 jars 中有两个名为 com.company.ma.MyClass 的类
【问题讨论】:
-
FWIW,检查jhades.github.io/index.html
-
您也许可以使用ByteBuddy 之类的工具在运行时替换加载的类,这对您来说可能已经足够了。
-
ClassLoader.getResources("com/company/ma/MyClass.class")
标签: java reflection jar classpath