Bonjour,
Normalement j'aime pouvoir règler mes erreurs seul, mais celle la je n'y arrive pas.
J'ai créé un code pour compressé des classgen et les autre fichiers dans un .jar
Et sa me donne sa comme erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public void Save(String filename) { if (cgs == null || nonClass == null) { throw new IllegalStateException("You need to load before save."); } FileOutputStream stream = null; JarOutputStream out = null; try { byte buffer[] = new byte[10240]; stream = new FileOutputStream(filename); out = new JarOutputStream(stream); for(ClassGen cg :cgs){ //cgs = array de classgen String cName = cg.getClassName(); cName=cName.replace('.', File.separatorChar)+".class"; System.out.println(cName); try{ out.putNextEntry(new JarEntry(cName)); }catch(ZipException zex){ System.err.println("Error: "+cName); zex.printStackTrace(); } out.write(cg.getJavaClass().getBytes()); out.flush(); } for (JarEntry entry : nonClass.keySet()) { //nonClass = Hashmap<JarEntry, InputStream> out.putNextEntry(entry); InputStream in = nonClass.get(entry); int nRead=0; while((nRead = in.read(buffer, 0, buffer.length))>0){ out.write(buffer, 0, nRead); } in.close(); } out.close(); //line 138 stream.close(); } catch (IOException ex) { ex.printStackTrace(); } }
Quelqun aurait une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 java.util.zip.ZipException: invalid entry compressed size (expected 36656 but got 36520 bytes) at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:206) at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:301) at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:146) at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:321) at gabuuzz.jar.JarHandle.Save(JarHandle.java:138) at gabuuzz.Main.main(Main.java:32)
Partager