Java kompilerer sin rå kilder koden på bytecode , snarere enn kjørbar kode. Bytecode er oversatt til maskinkode for individuelle datamaskiner ved Java virtuell maskin som er installert på den aktuelle maskinen. Dette systemet lar Java programmerere å lage multi - platform programmer som kjører off nettsteder kalles for applets . Disse programmene kan krasje for en rekke årsaker , alt fra JVM inkompatibilitet til feil i kildekoden . Laster Issues
En Java applet kan krasje før det noen gang starter. Utviklere laste opp applets som selvstendig " . Jar " filer som inneholder alt sluttbrukerens JVM trenger for å kjøre programmet . Dersom utbygger ikke klarte å inkludere noe i . Jar -filen , så JVM vil ikke kunne starte applet. Et annet problem som kan hindre applet startes riktig er data korrupsjon i . Jar -filen selv. Dette kan skje når utvikleren laster opp filen fra datamaskinen sin til serveren .
Ondsinnede applettkode
Java-applets kan også krasje fordi deres utviklere utviklet dem til å krasje. Når applets krasjer, kan de utløse atferd på den delen av nettleseren som normale datasikkerhet funksjoner ikke alltid forutse . Malware forfattere kan finne måter å utnytte disse krasjer å kompromittere en datamaskinens sikkerhet , installere programvare med forhøyede administrative tillatelser eller tilgang til systemkomponenter som er normalt begrenset. Holde nettlesere og system sikkerhetsoppdateringer up- to-date kan beskytte mot denne typen utnytting.
JVM Incompatility
Flere versjoner av Java-språket og JVM eksisterer. Den nyeste JVM er designet for å være bakoverkompatibel med Java- programmer som utviklerne kompilert for tidligere JVM versjoner . Hvis en bruker har en eldre versjon av JVM , og prøver å kjøre en applet som utvikler kompilert det for den nyeste versjonen av JVM , så kan det være ute av stand til å lese nyere bytecode og krasj .
Dårlig Programmering
Java-utviklere er ment å grundig teste sine programmer før de slipper dem til publikum . Dette tillater dem å oppdage feil i kildekoden som potensielt kan krasje programmet. Hvis en programmerer gjort feil i sin kildekode som kan føre til at JVM å krasje og tester ikke hans arbeid for å oppdage feilen , så han kunne laste opp en applet med dårlig skrevet kildekoden som vil krasje når brukere kjører den.