简体   繁体   English

Jar文件的NoClassDefFoundError

[英]NoClassDefFoundError for Jar file

I understand there are lots of questions on this topic but none of them seem to apply very well to my situation. 我了解有关此主题的问题很多,但是似乎没有一个问题适用于我的情况。 Basically I created a program with three class files, one of them called UserInterface.class that contains the main function. 基本上,我创建了一个包含三个类文件的程序,其中一个名为UserInterface.class的文件包含主函数。 I made a Manifest.txt that contains Main-Class: shoppingCrawler.UserInterface with a carriage return. 我制作了一个Manifest.txt文件,其中包含Main-Class:shoppingCrawler.UserInterface,带有回车符。 And then I did jar cfm shoppingCrawler.jar Manifest.txt *.class. 然后我做了jar cfm shoppingCrawler.jar Manifest.txt * .class。 This creates a jar file called shoppingCrawler.jar. 这将创建一个名为shoppingCrawler.jar的jar文件。 However, when I did java -jar shoppingCrawler.jar I got 但是,当我执行java -jar shoppingCrawler.jar时,我得到了

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)

Could not find the main class: UserInterface. 找不到主类:UserInterface。 Program will exit. 程序将会退出。

Do you know what's wrong? 你知道怎么了吗 Thanks! 谢谢!

What is the contents of your jar file? 您的jar文件的内容是什么? It appears to me that your class files are in the root directory, instead of being in the "shoppingCrawler" directory. 在我看来,您的课程文件位于根目录中,而不是在“ shoppingCrawler”目录中。

The Class UserInterface cannot be found in the package shoppingCrawler/UserInterface UserInterface不能在包中找到shoppingCrawler/UserInterface

You have the wrong classpath. 您的类路径错误。 Please take a look at your classpath, maybe you call the application from the wrong directory (if it is not paked into a jar-file). 请查看您的类路径,也许您从错误的目录中调用了该应用程序(如果未将其打包到一个jar文件中)。 Or you did not include all needed classes in your jar. 或者您没有在jar中包含所有需要的类。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM