【问题标题】:How to add manifest file in war如何在战争中添加清单文件
【发布时间】:2015-06-25 09:55:52
【问题描述】:

我能够创建指定目录的战争文件,即 /mydir 与

Process p = Runtime.getRuntime().exec("jar -cvf myapp.war . ",
                        s,
                        new File("/mydir"));

但是当我尝试在创建时添加清单文件时,创建的war文件被破坏了

Process p = Runtime.getRuntime().exec("jar -cvfm myapp.war MANIFEST.MF . ",
                        s,
                        new File("/mydir"));

即使我试过这个,它也会产生战争,但只包含清单文件而不是 /mydir 的内容

Process p = Runtime.getRuntime().exec("jar -cvfm myapp.war MANIFEST.MF * ",
                        s,
                        new File("/mydir"));

【问题讨论】:

  • 您是否尝试过使用 jar 而不是 warjar 文件是用 manifest.mf 文件创建的吗?我想你应该试试这个。当您调用jar -cvfm ... 命令时,jar 命令将自动添加manifest.mf 文件。可能是当自定义MANIFEST.MF 将添加到创建的jar 时,它会限制覆盖先前创建的 jar。或者您可以先创建.war n 然后更新它以添加manifest.mf 文件。试试看。
  • 以编程方式创建manifest.mf 文件有什么具体原因吗?那么你为什么不选择java.util.jar.Manifest呢?此类提供您创建自定义manifest 文件。你可以使用java.util.jar.Attributes.Name指定你想要在生成文件中的属性。

标签: java jar process war


【解决方案1】:

我在sn-p下面用过,效果很好

jar -cvfM  myapp.war MANIFEST.MF * ",
                        s,
                        new File("/mydir"));

这意味着它不会添加清单自动生成的清单,而是将我保存在 meta-inf 文件夹中的清单(自定义清单文件)存档

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2010-11-03
    相关资源
    最近更新 更多