2011-05-28 58 views
2

該文件夾測試包含各種文件和文件夾。我想創建一個只包含Test的子文件夾和文件的jar,而不包含目錄的名稱(Test)。如何在不記錄目錄名的情況下製作一個jar文件?

我已經試過:

ProcessBuilder createJarProcess2 = new ProcessBuilder("jar", "cMf", "test.jar","test"); 
p = createJarProcess2.start(); 
stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
// read any errors from the attempted command 
while ((s = stdError.readLine()) != null) { 
     System.out.println(s); 
} 
p.waitFor(); 
System.out.println("create jar 2 " + p.exitValue()); 

而且還包括目錄名。

感謝

+1

Jar是一個用Java編寫的程序,不是嗎?所以應該可以在純Java中創建一個Jar,而不用調用ProcessBuilder。 – 2011-05-28 19:33:41

+1

@用戶未知:實際上,「Jar」更準確地稱爲Zip。它更專門用於進行特定壓縮並指定清單文件的格式,但Jar不需要包含類(或清單)作爲有效的Jar。 +1爲你的第二點。 – 2011-05-28 19:49:02

+0

@Andrew:我沒有爭議,但我擔心的是,您可以從Java本地訪問java.util.jar.JarFile和JarEntry,而無需使用Processbuilder。這與jarfile的內容無關。它可能是具有清單的類。它可能不是。 – 2011-05-28 21:43:09

回答

6

See the -C option

臨時更改目錄爲DIR處理下列inputfiles說法。可以使用多個-C dir輸入文件集。

實施例:

jar cMf test.jar -C Test . 

編碼愉快。

+0

謝謝!它有幫助。 – blavi 2011-05-28 19:40:21

相關問題