java – JAR清单文件 – 规范和实现之间的区别
我想将版本信息(以及可能的一些关于jar的其他元数据)添加到我创建的一个库的jar中.但是,我不知道要使用什么属性.我发现
specification以及
documentation解释说可以有一个Specification-Version和Implementation-Version(以及两者的标题和供应商).但是既不能正确解释规范与实现之间的区别.
我也看了不同的例子. > documentation中的一个使用了“可执行标题”的“可读名称”和“实施标题”的包名称.规范版本使用点分隔版本号,而实现版本使用简单版本号. 这里的规范和实现元数据之间有什么区别?应该如何使用这些不同的属性(特别是版本号)?规范和实施的供应商是不同的吗? 它甚至发挥了我在那里的作用吗? 解决方法
每个的含义在
documentation of java.lang.Package中解释.
Specification-Version必须由ASCII数字序列组成,以ASCII周期分隔.不允许其他字符,期间不能在值的开始或结尾,并且不允许连续的期间. Implementation-Version是一个自由格式的字符串.它可以有任何格式. 规格 – 版本始终与包关联.如果您为整个清单指定,而不是针对特定的软件包,则它将应用于.jar文件中的所有软件包. 规范版本被许多Java技术用作解决依赖关系的一种手段.如果一些程序说需要JMF库的2.1版或更高版本,一些Java环境将分析每个清单的Specification-Version中的数字,并具有匹配的Specification-Title,并确保正确的版本(和没有其他版本)在运行时在类路径中可用. 事实上,Package.isCompatibleWith方法确实是非常检查.您甚至可以使用它来检查最低Java版本: if (System.class.getPackage().isCompatibleWith("1.6")) { System.out.println("Running in Java 1.6 or later."); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |