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