Java 如何使用manifest.mf来包含主类的正确位置?

Java 如何使用manifest.mf来包含主类的正确位置?,java,netbeans,manifest,noclassdeffounderror,classnotfoundexception,Java,Netbeans,Manifest,Noclassdeffounderror,Classnotfoundexception,有人能帮我吗?我还没能找到任何能完全满足我需求的答案。我找到的所有答案都与向清单文件添加额外的库有关,而不是什么 情况如下: 我已经用NetBeans 6.9编写了一个游戏。游戏是用Java编写的。大约有80个班。所有类都包含在默认包中。游戏执行正确。我已经在这个项目上工作了大约18个月,在开发这个游戏的过程中,我总是维护可执行代码 我所做的: 我需要将我编写的静态类中的某些内容导入到我正在处理的另一个类中。为了做到这一点,我必须将所有内容移出默认包。我使用NetBeans将所有内容重构成一个定

有人能帮我吗?我还没能找到任何能完全满足我需求的答案。我找到的所有答案都与向清单文件添加额外的库有关,而不是什么

情况如下: 我已经用NetBeans 6.9编写了一个游戏。游戏是用Java编写的。大约有80个班。所有类都包含在默认包中。游戏执行正确。我已经在这个项目上工作了大约18个月,在开发这个游戏的过程中,我总是维护可执行代码

我所做的: 我需要将我编写的静态类中的某些内容导入到我正在处理的另一个类中。为了做到这一点,我必须将所有内容移出默认包。我使用NetBeans将所有内容重构成一个定制包

发生了什么: 当我进行“清理和构建”时,项目构建成功。 当我执行“运行主项目”时,会出现以下错误:
java.lang.NoClassDefFoundError:WarMachine
原因:java.lang.ClassNotFoundException:WarMachine
…堆栈跟踪
找不到主类:WarMachine。程序将退出。

我检查了.jar文件,发现所有编译的.class文件都在那里,包括主类(称为WarMachine.class)。所有的.class文件都在一个名为Machine的目录中(这是我让NetBeans将所有内容重构成的包名)

从我在互联网上找到的信息来看,问题在于我的manifest.mf文件没有指向WarMachine.class文件的正确位置

我的清单文件需要说明什么?我不使用任何其他库或类似的东西。我有78门课,都在“机器”包里。有人能帮我吗


谢谢你的时间

您必须告诉Netbeans主类文件在哪里。右键单击项目,选择“属性”,然后转到左侧的“运行”树元素

现在,您将在右侧有一个“Main Class”文本框。单击“浏览”并选择您的主类。然后,Netbeans应该为您修复清单文件

出于好奇,dist文件夹的.jar文件中的清单文件应该有这样一行:

Main-Class: Machine.WarMachine

另一方面,使用小写字母作为包名被视为标准做法。你应该调用你的包
machine

你能发布jar内容列表(jar tf my.jar)吗。我错误地把它们贴在了下一个答案的评论上。哇,谢谢你的快速回复!这正是我想要的。不幸的是,我得到了同样的错误(现在修改为“找不到主类:Machine.WarMachine”。我想问题不在我想的地方。WarMachine.jar保存着data/machine/META-INF/。data保存着crewcontrol.txt crewdrives.txt crewhull.txt crewwings.txt。machine保存着所有的.class文件,包括WarMachine.class.META-INF保存着MANIFEST.MF。谢谢你的帮助。现在这可能是一个案例问题吗?你有
machine
错误,以及jar文件中的
machine
。哦,那是因为我在看到您第一次编写的内容后更正了包名。