Jar清单文件使用的java困惑
我正在阅读用jar工具打包java应用程序。我注意到META-INF目录下创建了一个清单文件。对于一个简单的应用程序来说,感觉它没有任何用途。我在stackoverflow上搜索以了解清单文件的用法。我遇到了UsesOfManifestFile。在阅读答案时,我对第2点和第3点感到困惑:-
- 什么是下载扩展?我无法理解答案中的概念李>
- 密封罐子意味着什么?下面给出了一个这样的例子
Name: myCompany/MyPackage/ Sealed: true
放这样的信息有什么用?有人能详细阐述一下这些观点吗。 谢谢
# 1 楼答案
清单文件类似于java程序运行jar的指导说明。创建清单时,它将保存关键信息,例如对主程序的引用。当java程序运行jar时,它不知道从哪里开始,所以它会在清单中寻找一行,告诉它带有main方法的类在哪里,这样它就有了程序的起点。另一个用途是类路径行,它会告诉程序在jar中的哪里可以找到任何第三方库,否则java程序也找不到它们
清单文件中可以存储一系列数据,我建议查看它们上的Oracle information,看看这是否会让它更清晰一些
编辑:来自Oracle网站,关于您的示例:
这似乎意味着,程序中使用的所有类都必须在同一个jar文件中
编辑2(评论回复)
清单可能包含以下行:
当javaw。exe(我认为)运行你的runnable jar,它不知道从哪里开始,所有java程序都通过一个主方法运行,但是如果你的jar中有50个类文件,它不知道从哪个主方法开始。它将查看清单文件,读取上面的行并正确思考,主要方法是在com包中。mkyong。awt,这个类是AwtExample,然后它找到这个类并从主方法运行程序。jar中最基本的功能是告诉运行jar的java程序在哪里找到运行jar所需的内容
注意:这个示例清单条目来自一个小的tutorial,它展示了如何创建一个简单的可运行jar
祝你好运