Come decomprimere i file ricorsivamente in Java?

Ho un file zip che contiene alcuni altri file zip.

Ad esempio, il file di posta è abc.zip e contiene xyz.zip , class1.java , class2.java . E xyz.zip contiene il file class3.java e class4.java .

Quindi ho bisogno di estrarre il file zip usando Java in una cartella che dovrebbe contenere class1.java , class2.java , class3.java e class4.java .