Hallo Tutorials team 
nach meinem letzten erfolgreich geloesten Problem muss ich euch wieder zur Last fallen ^^
Ich habe folgende Situation:
Ein executable jar file liegt als Datei vor und ich erzeuge in einem anderen Programm ein Objekt, welches dann serialisiert wird. Beide Dateien liegen also schon im selben Ordner, alles super soweit. (Das JarFile wird zu keinem (!!) Zeitpunkt ausgeführt!! )
Was ich jetzt aber gerne möchte ist:
Das Objekt (Also die datei davon) in das Jar-File hinzufügen, natürlich nicht von Hand
Wie geht das? Ich koennte es auch erst enpacken und dann mit Objekt ganz neu verpacken, aber ich finde keine Möglichkeit mit JarFile...
Ich habe hier mal was gebastelt:
Diese Klasse liest einen jarfile aus und schreibt bei mir jetzt nur den letzten Eintrag in ddas neu angelegte JarFile (testCopy.jar). Alles soweit, allerdings ist das fertige Archiv beschaedigt und ich kann nur die letzte Datei bei mir kopieren.
Füge ich die Zeile:
in die whileschleife ein, geht alles zubruch und er wirft mir eine ZipException in eben dieser zeile:
Wass kann man da machen?
Vllt steh ich auch voll am schlauch aber man kann nicht einfach ne zip erstellen und die als .jar speichern oder?! ^^
Vielen Dank schonmal im Vorraus
Gruß
hexa

nach meinem letzten erfolgreich geloesten Problem muss ich euch wieder zur Last fallen ^^
Ich habe folgende Situation:
Ein executable jar file liegt als Datei vor und ich erzeuge in einem anderen Programm ein Objekt, welches dann serialisiert wird. Beide Dateien liegen also schon im selben Ordner, alles super soweit. (Das JarFile wird zu keinem (!!) Zeitpunkt ausgeführt!! )
Was ich jetzt aber gerne möchte ist:
Das Objekt (Also die datei davon) in das Jar-File hinzufügen, natürlich nicht von Hand

Wie geht das? Ich koennte es auch erst enpacken und dann mit Objekt ganz neu verpacken, aber ich finde keine Möglichkeit mit JarFile...
Ich habe hier mal was gebastelt:
Code:
public class JarFileReadAndWrite {
public static void main(String args[]) throws IOException
{
JarFile jarFile = new JarFile(new File("C:\\test.jar"));
FileOutputStream out = new FileOutputStream(new File("C:\\testCopy.jar"));
JarOutputStream jarOut = new JarOutputStream(out);
Enumeration<JarEntry> jarFileEntrys = jarFile.entries();
JarEntry akt = null;
while(jarFileEntrys.hasMoreElements())
{
akt=jarFileEntrys.nextElement();
System.out.println(akt.getName());
}
jarOut.putNextEntry(akt);
out.close();
}
}
Diese Klasse liest einen jarfile aus und schreibt bei mir jetzt nur den letzten Eintrag in ddas neu angelegte JarFile (testCopy.jar). Alles soweit, allerdings ist das fertige Archiv beschaedigt und ich kann nur die letzte Datei bei mir kopieren.
Füge ich die Zeile:
Code:
jarOut.putNextEntry(akt);
in die whileschleife ein, geht alles zubruch und er wirft mir eine ZipException in eben dieser zeile:
Exception in thread "main" java.util.zip.ZipException: invalid entry size (expected 58 but got 0 bytes)
Wass kann man da machen?
Vllt steh ich auch voll am schlauch aber man kann nicht einfach ne zip erstellen und die als .jar speichern oder?! ^^
Vielen Dank schonmal im Vorraus
Gruß
hexa
Zuletzt bearbeitet: