Mein Ziel ist es, den Strom einiger .classes zu nehmen und eine JAR zu erstellen.JAR generiert mit JarOutputStream mit ungültiger .class
Das Problem ist, dass JAR Stores die Klassen erstellt, aber nicht als Klassenpfad verwendet werden kann (es findet nur die Klasse nicht). Die JAR ist nicht beschädigt und wenn ich die JAR dekomprimiere, kann ich die .classes verwenden. Also, was ist das Problem, wenn dieser Code?
@Test
public void createJARTest() throws IOException
{
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
final JarOutputStream jarOutputStream = new JarOutputStream(byteArrayOutputStream);
final String path = "/com/app/MyClass.class";
final JarEntry entry = new JarEntry(path);
jarOutputStream.putNextEntry(entry);
final BufferedInputStream in = new BufferedInputStream(this.getClass().getResourceAsStream(path));
final byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = in.read(buffer)) != -1)
{
jarOutputStream.write(buffer, 0, bytesRead);
}
in.close();
jarOutputStream.closeEntry();
jarOutputStream.close();
byteArrayOutputStream.writeTo(new FileOutputStream("/Downloads/classpath.jar"));
byteArrayOutputStream.close();
}