JLE 01 - Inleiding
Als je voldoende hebt aan een editor zoals Notepad of Wordpad, kan je na de installatie van de Java Software Development Kit (SDK) al direct aan de slag en javaprogramma’s schrijven. Wie een IDE of ontwikkeltool zoekt, kan eveneens op het net terecht zonder een licentie te moeten betalen. Er zijn diverse IDE’s gratis beschikbaar. In deze cursus hebben we gekozen voor Eclipse.
Als je je applicatie wil uitbreiden met een databank, kan je een beroep doen op MySQL. En ook deze databank is gratis op het internet beschikbaar. Kortom, Java is de gedroomde omgeving voor wie studiewerk wil doen zonder zich blauw te betalen aan licenties.
Java bestaat uit een hele reeks voorgedefinieerde classes en het duurt een hele tijd voor je het grootste deel van die classes onder de knie hebt. Wie een GUI wil bouwen, kan beroep doen op AWT of Swing. Wie voor een web applicatie kiest, kan de schermen bouwen in HTML. Met de nodige java code tussen de HTML tags, heb je een JSP of Java Server Page. Je hebt dus veel sneller een applicatie gebouwd zonder dat je de Swing classes hebt geleerd : kennis van HTML volstaat. Een tweede voordeel van java web applicaties is dat je je applicatie kan aanbieden op het internet. En dus is ze voor iedereen beschikbaar zonder dat ze eerst lokaal geïnstalleerd moet worden. Voor een Java web applicatie heb je een servlet container nodig. Zo’n container is Tomcat en ook deze software kan gratis en legaal van het internet gehaald worden.
Het einddoel van deze cursus is het bouwen van een volledige e-shop of elektronische winkel. Het schoolvoorbeeld van zo’n e-shop is amazon.com dat wereldwijd gekend is. Via het internet kan je produkten kopen en in je winkelkarretje leggen. Aan het einde van je tocht door de internetcatalogus kan je met je aankopen naar de virtuele kassa rijden. Een gelijkaardige applicatie willen we in deze cursus bouwen. Daarvoor maken we gebruik van de volgende software :
|
In 1991 is een groep van 4 ingenieurs hun eigen toekomst bij Sun aan het overpeinzen : blijven ze bij Sun of willen ze een eigen project opstarten ? Van de directie
krijgen ze de toestemming en de tijd om hun ideeën uit te werken. Deze 4 ingenieurs - Frank, Gosling, Naughton en Sheridan - krijgen een lokaal achter een groene deur
en noemen hun project daarom “the Green Project”. Nu chips in allerlei toestellen begonnen op te duiken, zoals video recorders, toasters, was het eerste grote idee van
deze 4 de ambitie om alle elektronische toestellen met elkaar te verbinden.
Als je met verschillende toestellen wil werken, is het handig om een universele afstandsbediening te hebben die op al deze toestellen kan bedienen. Dit toestel werd “*7” (Star seven) genoemd en James Gosling schreef de applicatie voor dit toestel. Al snel stootte hij op het probleem dat een applicatie moest herschreven worden als je het op verschillende processoren wil laten lopen. Om dit probleem op te lossen startte hij de ontwikkeling van een programmeertaal en een software interpreter. Na enkele weken was de virtuele machine klaar. De programmeertaal werd “oak” genoemd, naar de eik waarop zijn venster uitgaf. |
| Het eerste prototype van *7 was een draadloze handcomputer met een groot raakscherm. Als je de applicatie startte door het scherm aan te raken, verscheen er een figuurtje, “duke” genaamd, dat de gebruiker de nodige uitleg gaf bij het gebruik van deze afstandsbediening. Duke is een creatie van Joe Palrang. |
Time Warner, een grote speler op het vlak van media, televisie en film, betoonde interesse maar trok zich na een paar maanden terug. Dit was een grote tegenvaller voor First Person. En blijkbaar was er geen ander bedrijf toen geïnteresseerd in digitale televisie. Hierdoor verliet één derde van de 50 werknemers First Person. En net als het ernaar uitziet dat First Person zal worden opgedoekt door Sun, is er die demonstratie op de TED conferentie in Californië. De demonstratie toont dat voortaan ook beweging mogelijk is in een internet browser.
| Hiermee heeft Oak zijn roeping gevonden : het internet. Alleen moet er nog een nieuwe naam gevonden worden voor Oak. Er is namelijk al een bedrijf met de naam Oak Technologies. De oorsprong van de naam “Java” kent verschillende versies. Maar waarschijnlijk heeft men de naam gekozen in een coffeeshop. |
Eén jaar later komt de grote test : Sun organiseert in San Francisco de eerste JavaOne Conferentie. Maar het voorspellen van het aantal aanwezigen is bijzonder moeilijk. Een vergelijkbare conferentie van Netscape trok 1500 geïnteresseerden aan. Als JavaOne een gelijkaardig aantal zou aantrekken, zou het een succes zijn. En het werd meer dan dat : Sun zag zich genoodzaakt de reservaties te stoppen toen er 5000 inschrijvingen waren. In 1997 waren er 8000 inschrijvingen, in 1998 15.000 en in 1999 werd de maximum capaciteit van 20.000 aanwezigen bereikt.
| De slogan “write once, run anywhere” geeft de ambitie van Java goed weer : Java wil alomtegenwoordig zijn. De belofte dat je applicatie op eender welk toestel kan draaien, vereistte wel dat er voor ieder besturingssysteem/processor combinatie een Java Virtual Machine beschikbaar was. En dus moest Sun hierover onderhandelen met de andere groten zoals Microsoft, IBM, Oracle. Om dit te bereiken werd de Java broncode vrij op het internet beschikbaar gezet. Er moest over gewaakt worden dat de bedrijven niet een eigen versie van Java zouden maken . Het logo “java compatible” gaf aan dat Java-applicaties beantwoorden aan de vereisten om op alle JVM te kunnen lopen. |
| De alomtegenwoordigheid van Java waar Sun naar streeft, kan niet zonder de samenwerking met andere informatica-bedrijven. Deze samenwerking wordt bewaakt door de Java Community Process, een consortium gesticht door Sun in 1998 waarop bedrijven en particulieren welkom zijn om de javataal te doen evolueren. Wie iets wil wijzigen aan Java, kan hiervoor een JSR of Java Specification Request indienen. |
Van in den beginne was het de bedoeling Java aan te bieden op allerlei toestellen. Java is dus mobiel geworden in een dubbele betekenis : Java functioneert niet alleen op computers, van PC tot mainframe, maar is tevens verhuisd naar kleinere toestellen, van de zogenaamde mobieltjes tot PDA’s . En Java is ook aanwezig op de zogenaamde Java smart cards. Het eerste bedrijf dat een smart card maakte, was Axalto. Dit Franse bedrijf maakte een subset van Java die paste op de kleine chip van een smart card.
| Een smart card heeft de grootte van een credit card. Deze card bevat een ingebedde microprocessor die voldoende procescapaciteit en geheugen heeft om instructies en gegevens op te slaan. |
En dichter bij huis heeft de Belgische regering gekozen voor de Java Card om de Belgische elektronische identiteitskaart mogelijk te maken. We komen verder in dit hoofdstuk nog terug op verschillende toepassingen van Java. Maar één ding is duidelijk : Java is nog zeer levendig op zijn 10e verjaardag.
Een C-compiler vertaalt een C-programma in assemblercode of machinetaal. Deze code wordt enkel begrepen door de computer waarvoor de compiler is gebouwd. Een C-compiler onder Windows zal het C-programma vertalen in assembler die door Windows kan uitgevoerd worden. Plaats de assemblercode op een Linuxmachine en de code zal daar niet werken. In dit geval zal je het C-programma moeten hercompileren. En bij deze hercompilatie loop je dan het risico dat bepaalde instructies door de Linux C-compiler niet meer begrepen worden. Met als gevolg dat je deze instructies moet herschrijven. Gevolg : je eindigt met 2 verschillende programma’s die in wezen hetzelfde moeten doen. En bij iedere verhuis naar een ander besturingssysteem heb je hetzelfde probleem.
Een Javacompiler vertaalt het Javaprogramma in Java bytecode. Deze bytecode kan op eender welke omgeving werken zonder dat er een nieuwe compilatie aan te pas komt. Het herschrijven van bepaalde stukken Javacode is eveneens overbodig. Een Javaprogramma werkt op eender welke computer op identiek dezelfde manier.
De Java-omgeving maakt abstractie van de diverse soorten computers. Men gaat er dus van uit dat er slechts één enkele
computer is. Die noemt men de Java Virtual Machine of JVM. Voor deze ene computer wordt er bytecode gemaakt. De JVM
garandeert dat de code op dezelfde wijze wordt uitgevoerd ongeacht het besturingssysteem dat eronder zit.
Java is een programmeertaal, en net zoals bij menselijke talen is er een syntax, een semantiek, grammatica en een basiswoordenschat. Deze basiswoordenschat zijn de Java API classes. API staat voor Application Program Interface en kan beschouwd worden als de bouwstenen die de programmeur kan gebruiken voor het bouwen van de applicatie. In andere woorden, een API geeft de programmeur de gelegenheid om niet telkens weer het warm water te moeten uitvinden én het zorgt voor een gestandaardiseerde manier van werken. Zo biedt Java de class String aan die de programmeur toelaat om met letterreeksen of woorden te werken. Een andere API is JDBC of Java Database Connectivity. Deze API geeft de programmeur de mogelijkheid om gegevens uit databanken te halen.
Het geheel van de Java Virtual Machine en de Java API classes vormt de Java Runtime Environment of JRE. Het is deze omgeving die je moet installeren op je computer alvorens je Javaprogramma’s kan uitvoeren.
De Java Virtual Machine vertaalt de bytecode naar de machinetaal van de computer waarvoor de JVM is gemaakt.
Voor iedere combinatie van besturingssysteem en processor is er een JVM gemaakt. Het is de JVM die zorgt voor de
uitvoering van de Java bytecode.
Wil je zelf ook Javaprogramma’s schrijven, dan heb je niet voldoende aan de JRE. In dat geval moet je de JDK of Java Development Kit installeren. Indien je de JDK installeert, krijg je de Javacompiler erbij. Deze compiler spreek je aan met het commando javac gevolgd door het javaprogramma dat je wil compileren. Ieder Javaprogramma heeft de extensie “.java”. Compileren betekent het omzetten naar de bytecode die de extensie “.class” heeft. Om de bytecode uit te voeren, roep je de JVM aan met het commando “java” gevolgd door de naam van het bytecode bestand. De installatie en het gebruik van de compiler worden later nog uitvoerig behandeld.
| Net zoals de Javakoffie, komt de Java-omgeving in verschillende smaken. Er is de standaard omgeving, de omgeving voor bedrijven, de omgeving voor mobiele toestellen. En er is een Javaversie voor interactieve digitale televisie. Deze omgevingen worden voorgesteld door hun respectievelijke letterwoorden : J2SE, J2EE, J2ME en MHP. |
|
De J2 SDK komt in 2 soorten. Je kan ervoor kiezen genoegen te nemen met de Java Runtime Environment : in dat geval
kies je voor de Java Virtual Machine en de Java API’s, de basisklassen die tot de Java-omgeving behoren.
Of je kiest voor de Java Development Kit zodat je ook zelf je eigen Javaprogramma’s kan ontwikkelen.
Voor eenvoudige Java-applicaties volsta je ruimschoots met J2SE. Wil je daarentegen applicaties ontwikkelen voor bedrijven, dan moet je een beroep doen op Java 2 Enterprise Edition of J2EE. J2EE is een verzameling van technieken en praktijken die voorschrijven hoe je een multi-tier applicatie kan ontwikkelen.
Een multi-tier of meerlagige applicatie verwijst naar het aantal lagen waarin een applicatie is onderverdeeld. Bij een 2-tier ontwerp zijn er 2 lagen : de applicatie en de database. Bij een 3-tier ontwerp zijn er 3 lagen : de user interface, de bedrijfslogica en de database.
J2EE reikt de ontwikkelaar een aantal technieken en praktijken aan die hem/haar helpen bij het ontwikkelen van een
meerlagige applicatie.
Java is ook beschikbaar voor draagbare toestellen zoals een GSM, een PDA, een GPS.
De subset van Java die voor dit soort toestellen ontworpen is, noemt men J2ME of Java 2 Mobile Edition. Overigens mag je
“draagbaar” zeer ruim nemen : J2ME richt zich voornamelijk op wat men in het Engels “consumer electronics” noemt. Daar
horen dus ook TV-toestellen bij. Binnen J2ME heb je ook MHP of Multimedia Home Platform. Dit is de subset van Java die
zich richt tot het programmeren van applicaties voor iDTV .
En dan is er ook de Java Card, waarmee je applicaties kan maken voor zogenaamde smart cards, met beperkt geheugen en processor capaciteit.
![]() |
In oktober 2004 werd Java 1.5.0 gereleased. Het is vanaf dan dat er meerdere versienummers voor eenzelfde versie van Java gebruikt werden. Java 1.5.0 wordt ook genummerd als Java 5.0. En er is ook een codewoord voor : Java Tiger. |