首页 > 解决方案 > 系统运行多个小时后的 java.lang.NoSuchMethodError

问题描述

假设一个公共 A 类

public class A {

    public boolean test(Object a) {
        return true;
    }

}

让这个方法通过调用

java.lang.Class.forName("A").getMethod(test, Object.class).invoke(new A(), new Object());

此例程在应用程序的运行时 24/7 期间有效,但似乎无法确定。它抛出一个 NoSuchMethodError。

你有什么想法,为什么这种方法会从一个时间点到另一个时间点失败?

我们使用 open jdk 项目中的 java 8 版本并在 SUSE enterprise 14.0.4 中运行该应用程序,该服务器已启动并运行,没有任何中断迹象。

在没有对 JAR 进行任何更改的情况下重新启动应用程序后,函数调用再次完美运行。

标签: javareflectionvirtual-machinenosuchmethoderror

解决方案


推荐阅读