2009-08-19 7 views
3

Grundsätzlich habe ich eine JAR-Datei, die ich aus einem Junit-Test in einen bestimmten Ordner entpacken möchte.Einfachste Art ein Glas in Java zu entpacken

Was ist der einfachste Weg, dies zu tun? Ich bin bereit, eine kostenlose Third-Party-Bibliothek zu verwenden, wenn es notwendig ist.

Antwort

6

Sie könnten java.util.jar.JarFile verwenden, um über die Einträge in der Datei zu iterieren, indem Sie jeweils einen über seine extrahieren und die Daten in eine externe Datei schreiben. Apache Commons IO bietet Dienstprogramme, um dies ein wenig weniger schwerfällig zu machen.

2

Jar wird grundsätzlich mit ZIP-Algorithmus gezippt, so dass Sie Winzip oder Winrar extrahieren können.

Wenn Sie nach einem programmatischen Weg suchen, dann ist die erste Antwort richtiger.

+1

Funktioniert nicht in OPs Ausführung von einem Junit-Test. – Chadwick

1

von der Kommandozeile Typ jar xf foo.jar oder unzip foo.jar

4
ZipInputStream in = null; 
OutputStream out = null; 

try { 
    // Open the jar file 
    String inFilename = "infile.jar"; 
    in = new ZipInputStream(new FileInputStream(inFilename)); 

    // Get the first entry 
    ZipEntry entry = in.getNextEntry(); 

    // Open the output file 
    String outFilename = "o"; 
    out = new FileOutputStream(outFilename); 

    // Transfer bytes from the ZIP file to the output file 
    byte[] buf = new byte[1024]; 
    int len; 
    while ((len = in.read(buf)) > 0) { 
     out.write(buf, 0, len); 
    } 
} catch (IOException e) { 
    // Manage exception 
} finally { 
    // Close the streams 
    if (out != null) { 
     out.close(); 
    } 

    if (in != null) { 
     in.close(); 
    } 
} 
Verwandte Themen