【问题标题】:Class-Path in manifest gets disordered清单中的类路径变得无序
【发布时间】:2015-01-30 08:30:26
【问题描述】:

我正在创建一个 jar 文件,其中包含 Class-Path manifest.mf 中引用的多个 jar。

创建 jar 后,我可以看到 Class-Path 条目值混乱。请建议我如何解决它?

我输入的是这样的:

lib\axis.jar
 lib\axis-ant.jar

在 jar 文件中会变成这样:

lib\axis.j
arlib\axis-ant.jar

【问题讨论】:

  • 您使用的是什么工具/IDE? jar 文件有效吗?你怎么看罐子里的MF?
  • 我正在使用jar命令,使用securezip查看创建的jar里面的Manifest.MF。
  • 最后一行是否以新行结束?看看这个:docs.oracle.com/javase/tutorial/deployment/jar/downman.html.
  • 是的,它以换行符结尾。 lib\xercesImpl.jar lib\xmlParserAPIs.jar
  • 正如@PeterMmm 所问,Jar 可以工作还是抱怨此类库?如果不行,试着把所有库放在一行,用空格隔开。

标签: java manifest.mf


【解决方案1】:

我假设您的 JAR 包含与此类似的部分:

Classpath: lib\axis.jar
 lib\axis-ant.jar

这是一个拆分为多行(第一行和续行)的单个值。它完全等同于:

Classpath: lib\axis.jarlib\axis-ant.jar

表示续行的换行符和空格不是值的一部分。

该值需要在两个文件名之间包含一个空格。例如(仍然使用延续;注意多余的空格):

Classpath: lib\axis.jar
  lib\axis-ant.jar



另外,请注意 JAR 工具有权调整行的拆分方式,因为这不会影响值的解释方式。这个:

Classpath: lib\axis.j
 arlib\axis-ant.jar

仍然等价于:

Classpath: lib\axis.jarlib\axis-ant.jar

因此,JAR 工具通过进行该更改并没有做错任何事情。

【讨论】:

    猜你喜欢
    • 2014-10-29
    • 2010-10-15
    • 2023-03-04
    • 2018-04-10
    • 2015-01-18
    • 2010-10-18
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多