Zip/Jar - File aus einem anderem Jar entpacken & auf Disk kopieren.
Hallo allerseits,
ich habe in einem Jar File ein Zip/Jar - File und will dieses einfach auf meine Festplatte entpacken.
Durch Hilfe verschiedener Threads konnte ich mir auch etwas zusammen basteln.
Ich habe auch das Gefühl dass ich nur einen kleinen Schritt von der Lösung entfernt bin, dennoch funktioniert das Skript leider so noch nicht ganz.
Ich wäre sehr froh wenn mal jemand drüber schauen und mir meine Fehler aufzeigen könnte.
vielen Dank für die Hilfe
steedz
Hallo allerseits,
ich habe in einem Jar File ein Zip/Jar - File und will dieses einfach auf meine Festplatte entpacken.
Durch Hilfe verschiedener Threads konnte ich mir auch etwas zusammen basteln.
Ich habe auch das Gefühl dass ich nur einen kleinen Schritt von der Lösung entfernt bin, dennoch funktioniert das Skript leider so noch nicht ganz.
Ich wäre sehr froh wenn mal jemand drüber schauen und mir meine Fehler aufzeigen könnte.
PHP:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
public class ZipArchiveExtractor {
/**
* @param args
*/
public void extractArchive(InputStream archive, File destDir) throws Exception {
if (!destDir.exists()) {
destDir.mkdir();
}
ZipInputStream quelle = new ZipInputStream(archive);
byte[] buffer = new byte[16384];
int len;
while (true) {
ZipEntry entries = quelle.getNextEntry();
String entryFileName = entries.getName();
File dir = buildDirectoryHierarchyFor(entryFileName, destDir);
if (!dir.exists()) {
dir.mkdirs();
}
if (!entries.isDirectory()) {
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(new File(destDir, entryFileName)));
BufferedInputStream bis = new BufferedInputStream(quelle);
while ((len = bis.read(buffer)) > 0) {
bos.write(buffer, 0, len);
}
bos.flush();
bos.close();
bis.close();
}
}
}
private File buildDirectoryHierarchyFor(String entryName, File destDir) {
int lastIndex = entryName.lastIndexOf('/');
String entryFileName = entryName.substring(lastIndex + 1);
String internalPathToEntry = entryName.substring(0, lastIndex + 1);
return new File(destDir, internalPathToEntry);
}
public static void main(String[] args, String path) throws Exception {
InputStream quelle = ZipArchiveExtractor.class.getResourceAsStream("Script.jar");
new ZipArchiveExtractor().extractArchive(quelle, new File(
"c:/SCRIPT"));
}
}
vielen Dank für die Hilfe
steedz
Zuletzt bearbeitet: