Tuomo Varis (ja Vesa Lappalainen muokkasi hieman)
J2ME:n opettelussa ehkä ikävin vaihe on kehitysympäristön käyttöönotto ja toimintaan saaminen. Tämän sivun tarkoitus on opastaa J2ME-ohjelmien teon alkuun suositun Eclipse-ympäristön parissa. Lisäksi tässä oppaassa toteutetaan yksinkertainen Hello World-tyyppinen ohjelma, jotta voimme todeta asennuksen onnistuneen.
Ohje on testattu toimivaksi seuraavassa ympäristössä: Windows XP, Eclipse 3.2.2 + EclipseME 1.6.6, Sony Ericsson SDK 2.2.4 for the Java(TM) ME Platform.
1. Wireless Toolkit
Ensimmäinen vaihe on sopivan WTK:n asentaminen.
WTK sisältää tarvittavat luokkakirjastot CLCD (Connected Limited Device
Configuration)- MIDP (Mobile Information Device Profile)-pohjaisten ohjelmien
tekemiseen, sekä yleensä muita hyödyllisiä työkaluja, kuten esimerkiksi
emulaattorin ohjelmien nopeaan testaamiseen. Lista EclipseME:n tukemista
WTK:sta löytyy EclipseME:n sivuilta.
Suositeltavaa on käyttää kohdelaitteen (mahdollisesti oman
puhelinvalmistajasi) WTK:ta tai Sunin omaa Sun Java Wireless Toolkit for
CLDC:tä. Yksityiskohtaiset asennusohjeet löytyvät kyseisen WTK:n
sivuilla. Asennuksen yhteydessä on tärkeää painaa mieleen polku, johon olet
työkalut asentanut. Tätä tietoa tarvitaan EclipseME:n asennuksen
yhteydessä
2. EclipseME
EclipseME on hyödyllinen plug-in Eclipseen, joka tekee
midlettien (MIDP-pohjaisten ohjelmien) tekemisen yhtä vaivattomaksi, kuin
tavallisten pöytäkoneille suunniteltujen Java-ohjelmienkin. Lisäksi se
sisältää työkalut JAD-tiedostojen (Java Application Descriptor) luomiseen ja
muokkaamiseen, sekä tuottaa kätevästi puhelimeen ladattavia
asennuspaketteja.
Jos Eclipse-versiosi on vanhempi kuin 3.2, nyt on hyvä aika päivittää se. Uudet EclipseME-versiot eivät toimi vanhemmissa Eclipseissä.
Nämä ohjeet ovat lyhennelmä EclipseME:n kotisivuilta löytyvästä englanninkielisestä ja kuvitetusta asennusohjeesta.
Uudemmissa tuo on kohdassa Help/Software updates.../Available Software/Add site
Valitse "Search for new features to install" ja paina Next. Seuraavaksi lisätään EclipseME:n oma päivitysosoite listaan. Valitse "New Remote Site..." ja syötä palvelun nimi ("EclipseME Update Site") ja URL: "http://www.eclipseme.org/updates/" ja paina OK. Nyt voit etsiä viimeisimmän EclipseME:n version palvelusta ja asentaa sen. Tämän jälkeen on hyvä käynnistää Eclipse uudelleen.
Nyt Window ► Preferences-ikkunassa pitäisi näkyä uusi osio, nimeltään "J2ME". Mikäli näin ei kuitenkaan ole, Eclipsen käynnistäminen uudelleen komennolla "eclipse -clean" voi auttaa.
Jotta EclipseME:tä voisi käyttää, täytyy sille osoittaa WTK:n laitemääritykset. Tämä tapahtuu Preferences-ikkunan J2ME-osan Device Management-osiossa. Valitse "Import...", anna hakuhakemistoksi se polku, jonne WTK:n asensit ja paina "Refresh". Valitse haluamasi laitteet ja paina "Finish". Ylimääräisten laitemääritysten tuomisesta ei ole ympäristölle haittaa, joten voit aivan hyvin valita kaikki löytyneet laitemääritykset tuotaviksi.
Myös asetusten Java-osion Debug ► Debugger Timeout kannattaa vaihtaa vähintään 15000 millisekuntiin. Muutoin ohjelmien ajaminen saattaa aiheuttaa virheitä turhaan.
3.Ensimmäinen ohjelma
J2ME-projekti luodaan valitsemalla New
Project-ikkunasta projektin tyypiksi J2ME Midlet Suite. Tämän ensimmäisen
ohjelman voimme luoda ihan oletusasetuksilla.
Projektiin on tietenkin lisättävä itse ohjelma. Se tehdään lisäämällä projektiin abstraktista MIDlet-luokasta periytyvä luokka. EclipseME:n avulla se käy seuraavalla tavalla:
Anna midletin nimeksi vaikkapa ekaMidlet ja paina Finish.
EclipseME kirjoitti meille ohjelman rungon valmiiksi. Se sisältää kaikki ne metodit, jotka ohjelman on syrjäytettävä:
import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class ekaMidlet extends MIDlet { public ekaMidlet() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { } }
Ylläolevia metodeita kutsutaan MIDletin elinkaaren eri vaiheissa automaattisesti. Tässä vaiheessa sen enempää J2ME APIen hienouksiin perehtymättä (Linkkilistasta löytyy mukava opas, jolla pääsee hyvin alkuun) tehdään seuraavanlainen esimerkkiohjelma: (lataa)
import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.lcdui.*; // Tarvittavat palikat käyttöliittymän käsittelyyn public class ekaMidlet extends MIDlet { public ekaMidlet() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { // Luodaan Alert-olio, joka on kätevä lyhyiden viestien näyttämiseen Alert viesti = new Alert("Hello World!"); // Käsketään näytönkäsittelijää näyttämään viesti Display.getDisplay(this).setCurrent(viesti); } }
Tämä ohjelma ei ole järin monimutkainen, mutta kelpaa emulaattorin testaamiseen. Emulaattorin asetuksia pääsee rukkaamaan "Run"-ikkunan (Run/Run Configurations/WirelessToolkit Emulator/New) "Emulation"-välilehdellä.
Run ikkunassa valitaan ajettava midletti ja ajotavaksi midlet (jos haku ei toimi, niin kirjoittamalla * välilyönti tuntuisi toimivan???). Jos ajosivulla ei ole valmista tämän midletin ajoa, niin sinne voi lisätä uuden tuplaklikkaamalla "Wireless Toolkit Emulation"-tekstiä ikkunan vasemmassa reunassa.Ohjelman siirtäminen kännykässä ajettavaksi riippuu pitkälti puhelimen ominaisuuksista. Yleisimmin toimiva tapa on tehdä ohjelmasta asennuspaketti ja ladata ohjelma kännykän oman nettiselaimen kautta. Mahdollisesti myös bluetooth- tai lankasiirto on toimiva. Tiedostojen siirron jälkeen puhelimesta riippuen ohjelman joutuu asentamaan. Joitakin puhelimia varten voi joutua .jad-tiedostosta muuttamaan: "MicroEdition-Profile: MIDP-2.0" jos tuonne on tullut suurepi versionumero. .jad tiedostoa voi editoida tavallisella editorilla tai Eclipsellä "rakenteisessa muodossa" tuplakilkkaamalla .jad-nimeä projekti-ikkunassa.
Asennuskelpoisen paketin voi luoda EclipseME:n avulla J2ME-valikosta:
Tiedostojen pitäisi ilmestyä asetuksissa määriteltyyn Deployment-hakemistoon (oletuksena "deployed"). Siirtämällä tämän hakemiston sisällön (ekaMidlet.jad ja ekaMidlet.jar) vaikkapa omien kotisivujesi alle, ja tekemällä samaan hakemistoon yksinkertaisen html-sivun, joka sisältää linkin ekaMidlet.jad-tiedostoon, voit testata ohjelman asentamista kännykkäsi selaimen kautta. Toimiva esimerkkisivu tässä. Ohjelmien asentaminen näin ei toimi kaikilla palvelimilla.
Virheet ovat siitä inhottavia, että ne voivat ilmentyä niin että puhelimessa vaan sovellus ei käynisty, mutta mitään virheilmoituksiakaan ei tule
MIDlet-1: AutolMidlet,,autol.AutolMidlet eli jos luokka on paketissa, niin jälkimmäisessä nimessä on paketti mukana.
MicroEdition-Profile: MIDP-2.0MIDP:n versionumero 2.0:aan.