繁体   English   中英

为什么在Java应用程序中收到ClassNotFoundException?

[英]Why am I getting a ClassNotFoundException in a java application?

我收到一条指出java.lang.NoClassDefFoundError: usemathobject/Main的错误,我不确定为什么要得到它。

经过一些搜索后,我发现了一个处理此错误的线程 在该线程中,它说我需要修改MANIFEST.MF文件,但是并没有向我清楚地说明如何修改该文件。 它指定要放在命令行中的内容,而不是要放在MANIFEST.MF文件中的内容。 我也尝试添加

Main-Class: "C:\Users\MyName\Documents\NetBeansProjects\UseMathObject\src\usemathobject\UseMathObject.java"

Manifest.mb ,如https://blogs.oracle.com/olaf/entry/jdev_includes_a_classpath_in上所建议的那样,但这没有用。

我在Windows Vista上使用NetBeans IDE 6.9.1

Main-Class: usemathobject.UseMathObject

您给包和类名,而不是文件路径。

这是设置捆绑到可执行jar文件中的独立应用程序的入口点的方法。 使用以下选项可创建或覆盖清单文件中的Main-Class属性值。 此选项可在创建jar文件期间或更新jar文件时使用。 此选项指定应用程序入口点,而无需编辑或创建清单文件。

例如,此命令创建Main.jar,其中清单中的Main-Class属性值设置为Main:

jar cfe Main.jar Main Main.class

Java运行时可以通过运行以下命令直接调用此应用程序:

java -jar Main.jar

我认为这里的问题是,您不了解自己在做什么,只是在随机尝试人们在告诉您的事情...而没有理解他们在说什么。 而且您不了解错误消息告诉您什么。

我认为您最好尝试了解 Java的包,类路径和jar文件机制的工作方式。 阅读《 Oracle教程》的以下部分:

阅读并理解了这些部分之后,一切都将变得很有意义……您将能够弄清楚自己在做错什么以及如何解决。

暂无
暂无

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

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