ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
1956
1956
EMPFEHLEN
-
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 HilfePHP-Code: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"));
}
}
steedzGeändert von stEEdZ (24.08.08 um 12:25 Uhr)
-
Vielleicht schreibst du noch was nicht so richtig funktioniert?
-
Hallo,
die Grundlage dieses Skriptes ist aus einer Vorgabe hier aus dem Forum! hier
Allerdings wird hier aus einem Zip von einer Vorgegebenen Pfad ausgelesen, was bei mir in einem ausgeführten Jar wäre! Ansonsten klappt das aber super!
Ich vermute dass der/die Fehler entweder im Aufruf des Jar-Files aus dem ausgeführten Jar stecken...
Code :1
InputStream quelle = ZipArchiveExtractor.class.getResourceAsStream("Script.jar");
Oder dass die Umwandlung von InputStream in main hinzu ZipInputStream in der Funktion einfach nicht stimmt...
Code :1 2 3 4
public void extractArchive(InputStream archive, File destDir) throws Exception { //... //... ZipInputStream quelle = new ZipInputStream(archive);
Oder dass bei "BufferedInputStream " die Variable "quelle" eine andere sein müsste?
Code :1
BufferedInputStream bis = new BufferedInputStream(quelle);
Leider bin ich mit java noch sehr unerfahren da ich erst vor 2 Wochen auf diese Sprache umgestiegen bin!
Die Fehler könnten sich also auch ganz wo anders verstecken
Danke für die Hilfe
steedzGeändert von stEEdZ (26.08.08 um 12:11 Uhr)
-
Ich wollte nicht wissen wo du meinst dass der Fehler ist, sondern wie sich dieser bemerkbar macht. Bekommst du eine Fehlermeldung oder wird einfach nichts entpackt? Irgendwie mußt du ja zu dem Schluß gekommen sein dass es nicht richtig funktioniert.
-
Es entpackt einfach nicht!
Problem ist natürlich dass ich ja ein JarFile ausführen muss um überhaupt auf das andere jar zugreifen zu können, dementsprechend seh ich auch kein Exceptionhandling weil ja keine Konsole mitläuft...
Danke
-
Dann starte doch dein Jar in dem du in der Konsole in den Ordner des Jar wechselst und dann
java -jar deinjar.jar
eingibst.
Dann siehst du auch alles.
-
Ok, danke für den Tip!
Für die meisten Leute wahrscheinlich sehr trivial aber mir war das tatsächlich nicht klar, wie ich die Nachrichten anschauen kann
So nun zurück zum Thema...
Also ich bekomm die Exceptions:
java.lang.NullPointerException: in is null
at java.util.zip.ZipInputStream.<init>(ZipInputStream.java:56)
at ZipArchiveExtractor.extractArchive(ZipArchiveExtractor.java:26)
at ZipArchiveExtractor.main(ZipArchiveExtractor.java:69)
at Main.main(Main.java:17)
Danke für die Hilfe
steedz
-
Wo liegt denn dein Jar und wo das Jar welches du entpacken möchtest?
-
Hallo,
also das jar liegt wegen mir auf C: (das is ja relativ unrelevant oder?)
Das Jar das ich quasi entpacken will liegt ganz normal im jar-file, also mein build sieht im Prinzip so aus:
>...jdk1.6.0_07/bin/jar.exe -cfmv0 meinJar.jar Manifest.txt Main.class extractJarFile.class UNZIPME.jar
UNZIPME.jar will ich quasi auspacken und auf Festplatte schupsen! (im Code is das Skript.jar)
Danke für die Hilfe
steedz
-
Code java:
1
ZipArchiveExtractor.class.getResourceAsStream("Script.jar");
Wenn du das so schreibst, muss das Script.jar innerhalb deines Jars im selben Ordner wie die Klasse ZipArchiveExtractor liegen. Ist das der Fall? In Jars kann man ja mit jedem Zip-Tool reinschauen.
-
Hallo,
entschuldige dass ich nicht früher zurückschreiben konnte, ich war im Urlaub!
Also ein kleines Problem besteht leider immernoch...
Das Jar-File wird entpackt!
Jedoch nur wenn ich das hier auskommentiere:
Dann erhalte ich zwar folgende Fehlermeldungen aber die Files werden entpackt!PHP-Code:// while ((len = bis.read(buffer)) > 0) {
// bos.write(buffer, 0, len);
// }
//
// bos.flush();
// bos.close();
// bis.close();
Code :1 2 3
Exception in thread "main" java.lang.NullPointerException at install.file.ZipArchiveExtractor.extractArchive(ZipArchiveExtractor.java:30) at install.file.ZipArchiveExtractor.main(ZipArchiveExtractor.java:63)
Wie ist das zu erklären?
Was für Probleme entstehen wenn ich die Fehlermeldungen einfach missachte?
Danke für die Hilfe
steedzGeändert von stEEdZ (03.09.08 um 17:21 Uhr)
Ähnliche Themen
-
[C] RAR File - Einfügen / Löschen / Entpacken
Von posi90 im Forum C/C++Antworten: 6Letzter Beitrag: 26.12.10, 21:04 -
Zip-file downloaden und entpacken
Von Paspirgilis im Forum PHPAntworten: 5Letzter Beitrag: 23.02.10, 19:06 -
Jar File auf anderem Computer starten
Von Floffy im Forum JavaAntworten: 10Letzter Beitrag: 27.08.08, 13:42 -
Wie cmd auf einem anderem Computer starten?
Von partitionist im Forum C/C++Antworten: 1Letzter Beitrag: 19.07.07, 14:16 -
gz-file entpacken (PHP)?
Von PCUser1 im Forum PHPAntworten: 2Letzter Beitrag: 03.07.02, 15:54





Zitieren

Login




