Ez a JVM default. Pontosabban, ha a JVM kap egy signalt amit aztan az abban futo program nem kezel le, akkor a JVM a 128+signal number ertekkel ter vissza. (143-128=15-SIGTERM)
Tekintve, hogy a JVM-nek goze sincs arrol, hogy a benne futo program rendezetten lepett-e ki (kapcsolatok, fajlok rendesen lezarva, clean-up, stb) vagy arrol, hogy hiba nelkul elvegezte-e azt, amiert egyaltalan elinditottak, ez a viselkedes ertheto a JVM reszerol. Nyilvan nem hazudhat be egy 0-at kilepeskor ha nincs tudomasa rola mi tortenik.
Az exit code beallitasa a programozo dolga. Meg lehet irni ugy a programot, hogy definialom, hogy a kulonbozo signalokra mi tortenjen es a vegen milyen ertekkel lepjen ki a JVM. Spring-ek ezek szerint ugy gondoljak, hogy nem fontos "normalis" exit code-ot beallitani kilepeskor. Azon lehetne vitatkozni, hogy mekkora a jelentosege az exit code-nak mondjuk web alkalmazsok eseten.
De kinyilatkoztatni, hogy a java "ratyisztáni kódhalmaz mindenestől" azert, mert valakik nem a sysadmin konvencioknak megfeleloen implementaltak egy framework-ot, az eleg eros.