Si el objetivo es que la salida sea compatible con pkzip y winzip, no conozco ninguna biblioteca de código abierto que haga esto. Tuvimos un requisito similar para una de nuestras aplicaciones, y terminé escribiendo nuestra propia implementación (compatible con el estándar zip). Si recuerdo, lo más difícil para nosotros fue que tuvimos que generar los archivos individuales sobre la marcha (la forma en que funcionan la mayoría de las utilidades zip es que crean el archivo zip grande, luego lo regresan y lo dividen más tarde, es mucho más fácil implementar. Tomó alrededor de un día para escribir y 2 días para depurar.
El zip estándar explica cómo debe verse el formato de archivo. Si no tiene miedo de arremangarse un poco, esto es definitivamente factible. Tienes que implementar un generador de archivos zip tú mismo, pero puedes usar la clase Deflator de Java para generar las secuencias de segmentos para los datos comprimidos. Tendrás que generar los encabezados de archivos y secciones tú mismo, pero solo son bytes, nada demasiado difícil. una vez que te sumerjas.
Aquí está la zip specification - sección K tiene la información que está buscando específicamente, pero también necesitará leer A, B, C y F. Si está tratando con archivos realmente grandes (Nosotros lo éramos), también tendrá que usar Zip64, pero por 24 MB, está bien.
Si quieres bucear y probarlo, si te surgen dudas, publícalo y veré si puedo proporcionar algunos consejos.
Esto es solo varios archivos zip separados, ¿verdad? No es un solo archivo zip de varios volúmenes. – mcv
Tenemos este código trabajando en las respuestas a esta pregunta - http://stackoverflow.com/questions/11104889/how-to-create-java-zip-archives-with-a-max-file-size-limit –