Constructs a new {@code JarOutputStream} using an output stream. The
content of the {@code Manifest} must match the JAR entry information
written subsequently to the stream.
super(os);
if (mf == null) {
throw new NullPointerException();
}
manifest = mf;
ZipEntry ze = new ZipEntry(JarFile.MANIFEST_NAME);
putNextEntry(ze);
manifest.write(this);
closeEntry();