Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[LANG] JAR in ein anderes Jar packen

1 view
Skip to first unread message

HolgerDanskeDK

unread,
Mar 26, 2002, 8:20:39 AM3/26/02
to
Hallo NG.

Ich möchte in eine Jar den Inhalt eines anderen Jars schreiben und dies
mit der Java-API java.util.jar.

Hier, auszugsweise der verewendete Code:

try {
FileInputStream ffis = new FileInputStream( ffilLib );
JarInputStream fjisInputStream = new JarInputStream( ffis );

JarEntry fjeyEntry = fjisInputStream.getNextJarEntry();

while( fjeyEntry!=null ) {
out( fjeyEntry.getName() );

int BUFFER_SIZE = 256;
byte[] aryBuffer = new byte[BUFFER_SIZE];

int iFileByteLen = (int)fjeyEntry.getSize();

out( "iFileByteLen: " + new Integer(iFileByteLen).toString()
);

pjosToAddTo.putNextEntry(fjeyEntry);

int iCount = 0;

out( "iCount: " + new Integer(iCount).toString() );

while( iCount < iFileByteLen ) {
int iIsRead = fjisInputStream.read( aryBuffer, 0,
BUFFER_SIZE );
out( "iIsRead: " + new Integer(iIsRead).toString() );
pjosToAddTo.write( aryBuffer, 0, iIsRead );
iCount += iIsRead;
} // while
out("Yes");
pjosToAddTo.closeEntry();
fjisInputStream.closeEntry();

fjeyEntry = fjisInputStream.getNextJarEntry();
} // while
fjisInputStream.close();
} // try
catch( IOException excIO ) {
excIO.printStackTrace();
} // catch


Diese Source wirft folgende Meldung raus:

[deploy] 0 [main] INFO de.jdi.anttask.Deploy -
org/apache/tools/ant/AntClassLoader$ResourceEnumeration.class
[deploy] 10 [main] INFO de.jdi.anttask.Deploy - iFileByteLen: 1355
[deploy] 20 [main] INFO de.jdi.anttask.Deploy - iCount: 0
[deploy] 20 [main] INFO de.jdi.anttask.Deploy - iIsRead: 256
[deploy] 20 [main] INFO de.jdi.anttask.Deploy - iIsRead: 256
[deploy] 20 [main] INFO de.jdi.anttask.Deploy - iIsRead: 256
[deploy] 30 [main] INFO de.jdi.anttask.Deploy - iIsRead: 181
[deploy] 30 [main] INFO de.jdi.anttask.Deploy - iIsRead: 256
[deploy] 30 [main] INFO de.jdi.anttask.Deploy - iIsRead: 150
[deploy] 30 [main] INFO de.jdi.anttask.Deploy - Yes
[deploy] java.util.zip.ZipException: invalid entry compressed size
(expected 743 but got 748 bytes)
[deploy] at
java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:195)
[deploy] at
java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:118)
[deploy] at
java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:93)
[deploy] at de.jdi.anttask.Deploy.addToJar(Deploy.java:715)
[deploy] at de.jdi.anttask.Deploy.createJar(Deploy.java:778)
[deploy] at de.jdi.anttask.Deploy.createJars(Deploy.java:829)
[deploy] at de.jdi.anttask.Deploy.execute(Deploy.java:429)
[deploy] at org.apache.tools.ant.Task.perform(Task.java:217)
[deploy] at org.apache.tools.ant.Target.execute(Target.java:184)
[deploy] at
org.apache.tools.ant.Target.performTasks(Target.java:202)
[deploy] at
org.apache.tools.ant.Project.executeTarget(Project.java:601)
[deploy] at
org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:266)
[deploy] at org.apache.tools.ant.Task.perform(Task.java:217)
[deploy] at org.apache.tools.ant.Target.execute(Target.java:184)
[deploy] at
org.apache.tools.ant.Target.performTasks(Target.java:202)
[deploy] at
org.apache.tools.ant.Project.executeTarget(Project.java:601)
[deploy] at
org.apache.tools.ant.Project.executeTargets(Project.java:560)
[deploy] at org.apache.tools.ant.Main.runBuild(Main.java:454)
[deploy] at org.apache.tools.ant.Main.start(Main.java:153)
[deploy] at org.apache.tools.ant.Main.main(Main.java:176)


Hat einer eine Idee, was ich hier falsch machte. Ich habe nämlich nicht
den blassesten Schimmer und ich habe auch kein Tutorial zum Umgang mit
der JAR-API gefunden. (
http://java.sun.com/docs/books/tutorial/jar/TOC.html war keine wirkliche
Hilfe :-( )

TIA
JD

0 new messages