gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:58:53 24 4
gpt4 key购买 nike

有人可以帮我解决这个问题吗?我无法找到任何可以完全满足我需要的答案。我找到的所有答案都与向 list 文件添加额外的库有关。

情况是这样的:

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

我做了什么:

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

发生了什么:

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

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

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

根据我在互联网上找到的信息,问题是我的manifest.mf文件没有指向WarMachine.class文件的正确位置。

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

感谢您的宝贵时间!

最佳答案

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

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

Run properties screenshot

如果您好奇,dist 文件夹的 .jar 文件中的 list 文件应包含如下行:

Main-Class: Machine.WarMachine

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

关于java - 如何使用 manifest.mf 包含主类的正确位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com