0

谁能帮我这个?我还没有找到任何东西可以完全满足我的需要。我找到的所有答案都与向清单文件添加额外的库有关。

情况如下:

我使用 NetBeans 6.9 编写了一个游戏。游戏是Java语言。大约有80个班。所有类都包含在默认包中。游戏正确执行。我已经在这个项目上工作了大约 18 个月,并且在开发游戏时我总是维护可执行代码。

我做了什么:

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

发生了什么:

当我执行“清理并构建”时,项目成功构建。当我执行“运行主项目”时,出现以下错误:

java.lang.NoClassDefFoundError: WarMachine
Caused by: java.lang.ClassNotFoundException: WarMachine
...stack trace
Could not find the main class: WarMachine. Program will exit.

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

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

我的清单文件需要说明什么?我不使用任何其他库或类似的东西。我有 78 个类,所有这些都在“机器”包中。谁能帮我?

谢谢你的时间!

4

1 回答 1

1

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

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

运行属性截图

如果你好奇,你在 dist 文件夹的 .jar 文件中的清单文件应该有这样的一行:

Main-Class: Machine.WarMachine

顺便说一句,使用小写字母作为包名称被认为是标准做法。你应该打电话给你的包machine

于 2010-12-09T18:50:57.487 回答