将缺少的jar 放到指定目录下面,使用 java -classpath 指定目录/commons-collections4-4.0.jar -jar XXX.jar
或 将缺少的jar 放到当前目录下面,使用 java -classpath . -jar XXX.jar  运行试试看

解决方案 »

  1.   

    看错误类型,如:你这个NoClassDefFoundError一般都是缺jar包,再看后面org/apache/commons/collections,熟悉commons-collections.jar这个jar包的,一看就知道缺这个jar包了。(bug修多了,一般错误一看就能知道在哪了)如果不熟悉这个错误的,将这个错误copy到百度,一般都能搜到答案对,最好学会断点,秒杀错误点在哪。
      

  2.   


    你好,我下载到commons-collections4-4.0.jar后解压,确实找到了MultiKeyMap.class
    然后将classpath设置为:
    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;F:\commonscollections4\commons-collections4-4.0.jar
    然后在执行命令:
    java -jar GANXiSw.jar -i network.dat还是会报错:
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/MultiKeyMap
            at Net.<init>(Net.java:38)
            at SLPAw.<init>(SLPAw.java:146)
            at SLPAw.main(SLPAw.java:2050)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.MultiKeyMap
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            ... 3 more用你的第二种方法也是同理,请问下这种情况如何解决呢
      

  3.   


    谢谢哈,的确应该是commons-collections.jar这个包,我在官网
    http://commons.apache.org/proper/commons-collections/
    上下载最新jar包,在classpath中设置路径后还是会报错呢,我没有要运行的jar包的源代码,所以只能通过设置额外的第三方jar路径来解决问题,请问下这种问题应该如何解决呢?
      

  4.   

    将你的xxx.jar 右键打开,将META-INF目录下面的MANIFEST.MF文件取出来
    添加一行 Class-Path: commons-collections.jar
    保存后,将MANIFEST.MF文件替换之前jar包中的MANIFEST.MF文件
    然后将 commons-collections.jar 这个jar放到跟xxx.jar同目录下面
    执行 java -jar xxx.jar 
      

  5.   

    你好,非常感谢你,回复这么快
    问题已经解决了,
    在v4版本中 MultiKeyMap 的包被修改到了
    org\apache\commons\collections4\map (也就是从collections改到了collections4).....重新下了了v3版本的commons-collections.jar
    设置路径后,问题就解决了
      

  6.   

    问题解决了就好,哈哈
    本应 java -classpath 指定目录/commons-collections4-4.0.jar -jar XXX.jar 这种方式就可以的
    但试了下确实不行,我还在找原因