程序部署在linux服务器上,大约每4天出一次该异常,重启程序后又正常了,急盼各位大侠帮忙!
Exception in thread "main" java.lang.NoClassDefFoundError: com/aiflow/zw/util/AlarmMess
at com.aiflow.zw.main.Main.main(Main.java:224)
Caused by: java.lang.ClassNotFoundException: com.aiflow.zw.util.AlarmMess
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 1 more
Caused by: java.io.FileNotFoundException: /home/tomcat/vas_elt_zy/com/aiflow/zw/util/AlarmMess.class (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at sun.misc.URLClassPath$FileLoader$1.getInputStream(URLClassPath.java:1005)
at sun.misc.Resource.cachedInputStream(Resource.java:61)
at sun.misc.Resource.getByteBuffer(Resource.java:144)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:256)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
... 6 more

解决方案 »

  1.   

    尽量不要考虑linux 句柄数受限制问题,因为即使改了linux 句柄数限制,顶多异常出现时间会延长,但从根本上解决不了问题
      

  2.   

    看看你的项目里有没有包含com/aiflow/zw/util/AlarmMess这个类的jar包,没有的话,添加。可能这个类用的频率不高,每用一次,就报一次错。
      

  3.   

    /home/tomcat/vas_elt_zy/com/aiflow/zw/util/AlarmMess.class 
    文件没找到,LZ的路径设置的有问题。
      

  4.   

    用Class.getResourceAsStream("com/aiflow/zw/util/AlarmMess.class") 试试
      

  5.   

    遇到过类似问题,是否流正常关闭了,是否并发比较多?检查一下代码,也有可能是使用别的jar开启流过多导致的。
      

  6.   

    Caused by: java.io.FileNotFoundException: /home/tomcat/vas_elt_zy/com/aiflow/zw/util/AlarmMess.class (Too many open files)
      

  7.   

    Caused by: java.io.FileNotFoundException: /home/tomcat/vas_elt_zy/com/aiflow/zw/util/AlarmMess.class (Too many open files)
    AlarmMess是不是做了文件操作,文件或流操作要记住:打开用完后要适时的关闭。
      

  8.   

    谢谢回复!AlarmMess这个类的jar包有的,我把配置文件里面改错一点,就能收到告警,没有出现该异常。它只是每隔4天左右的时间就出这异常
      

  9.   

    Caused by: java.io.FileNotFoundException: /home/tomcat/vas_elt_zy/com/aiflow/zw/util/AlarmMess.class (Too many open files)
    看错误提示,AlarmMess里打开的文件过多,是不是每天都会创建打开新的文件,但是过期的文件没有关闭?