java - META-INF的目的是什么?
在Java中,您经常会看到包含一些元文件的META-INF文件夹。 这个文件夹的目的是什么,我可以放在那里?
Kristian asked 2019-02-09T12:29:24Z
12个解决方案
150 votes
从官方的JAR文件规范(链接转到Java 7版本,但文本至少从v1.3开始没有改变):
META-INF目录
Java 2平台可识别和解释META-INF目录中的以下文件/目录,以配置应用程序,扩展,类加载器和服务:
services/
清单文件,用于定义扩展和包相关的数据。
services/
此文件由jar工具的新“services/”选项生成,该选项包含应用程序或扩展中定义的包的位置信息。 它是JarIndex实现的一部分,并由类加载器用于加速其类加载过程。
services/
JAR文件的签名文件。 'x'代表基本文件名。
services/
与签名文件关联的签名块文件具有相同的基本文件名。 该文件存储相应签名文件的数字签名。
services/
此目录存储所有服务提供程序配置文件。
aku answered 2019-02-09T12:31:35Z
59 votes
一般来说,你不应该自己把任何东西放到META-INF中。 相反,你应该依靠你用来打包JAR的任何东西。 这是我认为Ant非常擅长的领域之一:指定JAR文件清单属性。 说起来很容易:
至少,我觉得这很容易...... :-)