几次执行后java丢失了类

时间:2017-03-02 18:34:34

标签: java exception classnotfoundexception urlclassloader

我有一个在运行时动态实例化的处理程序类。对于特定数量的调用,它实例化得很好,但在某个时刻X我得到了这个例外:

    java.lang.ClassNotFoundException: com.q.integration.handler.SearchHandler
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
        at 

我查看了URLClassLoader的源代码,看起来URLClassPath找不到资源路径并返回null,然后抛出运行时异常。 如果你能给我任何想法,我会非常高兴。 谢谢!

1 个答案:

答案 0 :(得分:0)

实测值!代码是"失去" java类是多线程代码中使用的请求处理程序。它在顶部有私有静态正则表达式模式变量。我理解ClassNotFoundException与这个变量的初始化有关,这个初始化应该只在类级别发生过一次。我在函数调用中移动了这个变量并修复了问题。