你好,我下载到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用你的第二种方法也是同理,请问下这种情况如何解决呢
你好,我下载到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用你的第二种方法也是同理,请问下这种情况如何解决呢
谢谢哈,的确应该是commons-collections.jar这个包,我在官网
http://commons.apache.org/proper/commons-collections/
上下载最新jar包,在classpath中设置路径后还是会报错呢,我没有要运行的jar包的源代码,所以只能通过设置额外的第三方jar路径来解决问题,请问下这种问题应该如何解决呢?
添加一行 Class-Path: commons-collections.jar
保存后,将MANIFEST.MF文件替换之前jar包中的MANIFEST.MF文件
然后将 commons-collections.jar 这个jar放到跟xxx.jar同目录下面
执行 java -jar xxx.jar
问题已经解决了,
在v4版本中 MultiKeyMap 的包被修改到了
org\apache\commons\collections4\map (也就是从collections改到了collections4).....重新下了了v3版本的commons-collections.jar
设置路径后,问题就解决了
本应 java -classpath 指定目录/commons-collections4-4.0.jar -jar XXX.jar 这种方式就可以的
但试了下确实不行,我还在找原因