1

我在一个文件中有以下 java 类和文本文档:

Board.class
BoardPanel.class
Frame$ActionHandler.class
Frame.class
manifest.txt

其中manifest.txt包含:

Main-Class: Frame

但是当我输入以下命令时:

> jar cvfm gameOfLife.jar manifest.txt *.class
> java -jar gameOfLife.jar

它报告此错误:

no main manifest attribute, in gameOfLife.jar

我输入了错误的文字manifest.txt吗?还是我的错误来自其他东西?

4

2 回答 2

4

MANIFEST.MF文件必须位于 jar 的META - INF文件夹中。请参阅此处:了解默认清单

请注意,拥有manifest.txt文件并不意味着您拥有默认的 MANIFEST 文件。此外,如果您在创建 jar 时完全创建 MANIFEST 文件而不是在创建后手动添加它会更好(由 BrianRoach 的评论指出)。

要更新清单文件内容,请遵循 Oracle 教程:修改清单文件

于 2013-06-16T19:40:44.777 回答
3

manifest.txt在您的文件末尾添加一个新行。查看设置应用程序的入口点。它说:

警告:文本文件必须以换行符或回车符结尾。如果最后一行没有以新行或回车结束,则不会正确解析。

你的内容manifest.txt应该是:

Main-Class: gameOfLife.Frame

(不要忘记在清单文件中添加新行)。现在将此manifest.txt文件保存在文件夹之外gameOfLife。此后,在命令提示符下,只需将gameOfLife. 例如,如果你gameOfLifec:\apps\gameOfLife命令提示符下,它应该是:

C:\apps>jar -cvfm gameOfLife.jar manifest.txt gameOfLife/*.class
于 2013-06-16T20:01:43.973 回答