2015-06-25 47 views
0

清單文件,我可以創建目錄指定IE/MYDIR的戰爭文件,如何添加在戰爭

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

,但是當我嘗試添加清單文件,同時創建,創建war文件currupted

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")); 
+0

有你用'jar'而不是'war'來試試這個?用'manifest.mf'文件創建'jar'文件嗎?我想你應該爲此嘗試。當你調用'jar -cvfm ...'命令時'jar'命令會自動添加'manifest.mf'文件。可能是當定製'MANIFEST.MF'要添加到創建的'jar'時,那麼它會限制覆蓋以前創建的jar。或者你可以先創建'.war',然後更新它以添加'manifest.mf'文件。嘗試一下。 – OO7

+0

是否有任何具體原因以編程方式創建'manifest.mf'文件?然後**爲什麼你不去[java.util.jar.Manifest](http://docs.oracle.com/javase/7/docs/api/java/util/jar/Manifest.html)** ?這個類可以讓你創建自定義的'manifest'文件。您可以**使用[java.util.jar.Attributes.Name](http://docs.oracle.com/javase/7/docs/api/java/util/)指定您想要在生成的文件中使用的屬性罐/ Attributes.Name.html)。** – OO7

回答

0

我用下面的代碼片段和其做工精細

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

這意味着它不會增加清單自動生成的一個,而不是它歸檔的一個(定製清單文件),我一直保持着META-INF文件夾