Lär dig använda Java

Java är tekniken som gör det möjligt att köra spel och program på olika mobiler och datorer - oberoende av plattform och märke. I år är det 15 år sedan java föddes och nu finns det över 2,5 miljarder enheter som klarar java.

Publicerad Senast uppdaterad

Java började 1991 som en framtidsstudie hos Sun Microsystems i USA. Ett lag på 13 forskare som kallades The Green Team fick i uppdrag att titta in i kristallkulan och förbereda Sun för nästa trend i datorvärlden. Deras slutsats var att hemelektroniken snart skulle börja smälta samman med datorerna och att Sun skulle tjäna pengar på detta genom att erbjuda allt som krävs för att skapa programvaran för de nya prylarna.

Kodnamnet för tekniken var "Oak". Den första prototypen, en interaktiv fjärrkontroll för kabel-tv, blev ingen succé. Marknaden var helt enkelt inte redo. År 1995 byttes namnet Oak ut till förmån för java och utbredningen tog ett stort steg framåt genom att java blev en del av den då mycket populära webbläsaren Netscape Navigator.

Sandlådan är svaret

Många trodde att framtiden låg i java-applets, små program inuti webbsajter, men utvecklingen gick trögt eftersom programnedladdning inte var den bästa grenen för 1990-talets långsamma internet. Det var i stället på serversidan som java först slog igenom.

Säkerhetslösningarna i java fungerade mycket bättre än den äldre CGI-tekniken och i dag är servlets och J2EE en av de viktigaste teknikerna för webb-applikationer.

Java fungerar på olika sorters hård-varor och inuti olika operativsystem, trots att man inte behöver byta ut programmen eller göra en ny kompilering från källkod till maskinkod. Hemligheten är JVM - Java Virtual Machine - eller »sandlådan« som det också kallas. I stället för att javaprogrammen kommer åt processorn eller operativsystemet direkt kör man programmen i sandlådan.

Där gäller samma regler oavsett om datorn är en pc eller Mac eller om mobilen kommer från Motorola eller Sam-sung. Det gör att programmeraren bara behöver tillverka en version av spelet eller programmet - filen går sedan att köra i alla javaenheter som har tillräckligt bra prestanda.

Den del av javatekniken som används i mobiler heter J2ME. Tekniken går framåt och för att kunna lägga till nya funktioner i java har man delat in standarden i olika delar. Några viktiga begrepp att känna till är konfigurationer, profiler och API (Application Programming Interface).

En konfiguration är ett slags grundläggande beskrivning av vad som krävs av en javaenhet och den består av en JVM - sandlåda - och ett antal API. En API är ett bibliotek av olika funktioner, till exempel för att skicka sms eller för att göra en uppkoppling via gprs. För mobiler heter konfigurationen CLDC (Connected Limited Device Configuration) och den talar om för tillverkare och utvecklare vilka funktioner som alla javamobiler måste klara och hur mycket minne som måste finnas tillgängligt för programmen.

Samarbete för standard

Ovanpå konfigurationen ligger profilerna - mer detaljerade listor över funktioner. De profiler som är mest intressanta att känna till när det gäller mobiler är MIDP 1.0 och MIDP 2.0 (Mobile Information Device Profile). MIDP 1.0 är ganska begränsad. Det finns till exempel inget standardiserat stöd för ljud eller för säker kommunikation över internet. Tillverkarna tyckte inte att MIDP 1.0 var tillräckligt bra ens för tidiga javamobiler som Sony Ericsson T610 eller Nokia 3300, så man lade till extrafunktioner.

Olika tillverkare hade olika lösningar för extrafunktioner till MIDP 1.0, så standarden var ganska spretig under en tid. MIDP 2.0 är mer komplett och innehåller många möjligheter för spel, kommunikation och multimedia, så risken att tillverkarna frestas att hitta på egna speciallösningar är mycket mindre.

Utvecklingen fortsätter framåt och för att hålla ihop standarden sam-arbetar tillverkare och utvecklare inom ett program som heter JCP (Java Community Process). Medlemmarna i JCP ser till att nya tekniska möjligheter blir funktioner som går att använda i javaspel och program. Ett exempel på en teknik som lagts till i javastandarden är bluetooth. I tidiga javamobiler går det inte att använda bluetooth i ett javaprogram även om mobilen har funktionen.

Motorola tog fram en lösning, en så kallad JSR (Java Specification Request), på hur man kan koppla ihop mobilens bluetooth-funktion med java och presenterade den för övriga medlemmar i JCP. Varje JSR har ett nummer och när tillräckligt många medlemmar är nöjda med hur funktionen fungerar blir den en del av den officiella standarden.

Numret används sedan för att hänvisa till funktionen - om du till exempel läser att ett spel kräver "JSR 82", innebär det att spelet kräver tillgång till bluetooth. Alla delar av javastandarden har ett JSR-nummer, oavsett om det rör sig om en konfiguration, profil eller API.

J2SE - Java 2 Platform Standard Edition

Används flitigt för javaprogram som körs i datorns webbläsare, men även för fristående dataprogram.

J2EE - Java 2 Platform Enterprise Edition

En javaversion för serverprogram och affärssystem.

J2ME - Java 2 Platform Micro Edition

Javaversionen för prylar som du håller i handen eller pluggar in i väggen. Används i mobiler, hand-

datorer, digitalboxar och annan elektronik.