2011-11-28 136 views
0

我知道这个主题有很多问题,但他们都没有很好地适用于我的情况。基本上我创建了一个包含三个类文件的程序,其中一个名为UserInterface.class,其中包含主函数。我制作了一个包含Main-Class:shoppingCrawler.UserInterface的Manifest.txt,并带有回车符。然后我做了jar cfm shoppingCrawler.jar Manifest.txt * .class。这会创建一个名为shoppingCrawler.jar的jar文件。但是,当我做了java -jar shoppingCrawler.jar我得到了Jar文件的NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: UserInterface (wrong 
name: shoppingCrawler/UserInterface) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12 
4) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
     at java.net.URLClassLoader.access$000(URLClassLoader.java:56) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 

找不到主要类:UserInterface。程序将会退出。

你知道怎么回事吗?谢谢!

+0

检查生成的jar文件。文件夹结构应该是shoppingCrawler/,并且根目录应该是MANIFEST文件。 – srkavin

回答

0

你的jar文件的内容是什么?在我看来,你的类文件在根目录中,而不是在“shoppingCrawler”目录中。

+0

目录结构的确是问题所在。我把类文件放在根目录中而不是放在shoppingCrawler目录中。在我改变了之后,它现在起作用了。谢谢! – user700996

0

的Class UserInterface不能在包shoppingCrawler/UserInterface

你有错的类路径中找到。请看看你的类路径,也许你从错误的目录中调用应用程序(如果它没有被分割成jar文件)。或者你没有在你的jar中包含所有需要的类。

相关问题