Poškozený JAR v CLASSPATH

Dnes jsem zjistil, jak se JRE/JDK od Sunu (testováno na verzi 1.5) chová, pokud máte v CLASSPATH poškozený JAR nebo ZIP soubor. Člověk by očekával nějakou chybovou hlášku, jenže chování je takové, že se prostě takový archiv přeskočí a pokračuje se dále v hledání tříd proměnnou CLASSPATH. To samozřejmě nemusí dopadnout úspěchem, takže získáváme „oblíbenou“ výjimku ClassNotFoundException.

Ono se ani není čemu divit, JRE nemá možnost nic vypisovat do logu nebo na konzoli. Buď vyhodí výjimku, nebo ne. Vývojáři se v tomto případě rozhodli poškozený JAR přeskočit.

Dejte si na to pozor, může dojít k nepříjemné chybě či ztrátě času.