【发布时间】:2012-02-28 16:07:03
【问题描述】:
我想测试我的类 CallingClass 的新版本是否仍然适用于我的 jar,即使该类已经在它之后编译。
在我的例子中, CallingClass.m1() 调用了一个方法 CalledClass.method() ,它在 jar 中不存在。代码的执行会导致 NoSuchMethodError。
需要一个解决方案来再次测试 jar 类 CallingClass,但在执行之外。
我已尝试关注
public class ResolvingClassLoader extends ClassLoader
{
public Class<?> loadClass(String name) throws ClassNotFoundException
{
return loadClass(name, true);
}
public static void main(String[] args) throws Exception
{
final ResolvingClassLoader loader = new ResolvingClassLoader();
final String className = "CallingClass";
loader.loadClass(className);
}
}
并希望 loadClass 的调用生成 NoSuchMethodError,因为它解析(即链接)类。事实并非如此。你知道如何生成“早期”的 NoSuchMethodError 吗?
【问题讨论】:
标签: java linker classloader