domenica 9 dicembre 2007

j2me anche su leopard

Visto che in molti me lo chiedono ho buttato giù due righe su come impostare un ambiente di sviluppo j2me su Leopard.
Innanzi tutto c'è da dire che la sun non rilascia un wireless toolkit per osx, possiamo però utilizzare un emulatore di midp2 per venire incontro a questa carenza; in realtà mpowerplayer sdk fa molto di più, fornisce un implementazione di cdc 1.1 e midp 2.0 che permette di compilare midlet su osx tramite il compilatore java; utilizzando la versione 1.4.2, in quanto la 1.5.0 presenta problemi col preverifier. 
Inoltre in questo modo si può utilizzare l'amato xcode 3 anche per questo "sporco lavoro"; personalmente trovo xcode molto più leggero e funzionale di netbeans e eclipse.
L'SDK presenta anche un template per xcode che utilizza ant per compilare il progetto e lanciare l'emulatore, per non cambiare troppo il build-file in questa guida mi atterò alle impostazioni standard dell'sdk.
Per prima cosa è necessario scarica l'sdk dal sito: http://developer.mpowerplayer.com; scompattiamo quindi il contenuto dell'archivo nella nostro home. D'ora in avanti si va di command-line quindi lanciate il vostro terminale preferito (io adoro iterm):
$ sudo mkdir /Developer/Java
$ sudo mkdir /Developer/Java/Ant
$ sudo mkdir /Developer/Java/Ant/bin
$ sudo mv mpp-sdk /Developer/Java
$ sudo ln -s /usr/bin/ant /Developer/Java/Ant/bin

in pratica si crea le directory necessarie all'emulator e all'sdk e una directory necessaria al build-file di ant che cerca ant stesso in /Developer/Java/Ant/bin.
Ora è necessario copiare il template per xcode nella directory /Developer/Library/Xcode/Project Templates/Java/
$ sudo cp -R /Developer/Java/mpp-sdk/osx/xcode/template/Ant-based\ MIDlet\ Jar/ /Developer/Library/Xcode/Project\ Templates/Java/
a questo punto è necessario modificare leggermente il build.xml per fargli utilizzare la versione del compilatore java 1.4.2, quindi aprite con un editor o con xcode stesso build.xml, il file si trova sotto /Developer/Library/Xcode/Project Templates/Java/Ant-based MIDlet Jar, va modificata la riga 20 da:
<property name="java.classes.jar" value="/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar">
a:
<property name="java.classes.jar" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Classes/classes.jar">
Questo piccolo accorgimento serve per utilizzare javac 1.4.2.
Adesso aprite xcode; nuovo progetto; Ant-based MIDlet Jar; e click su run per vedere xcode compilare la midlet e lanciare l'emulatore e vedere finalmente il classico hello world; versione "micro edition!".



Adesso avete un ambiente di sviluppo j2me anche su Leopard :)

NOTE:
Funziona solo su leopard, su tiger cambiano alcuni percorsi, al momento ho aggiornato tutte le macchine a osx 10.5.1 quindi non ho un tiger sotto mano per fare due prove.
Sicuramente cambia il percorso dei template di xcode 2 e non ricordo se ant era installato di default su tiger comunque cerco di aggiornare in settimana l'articolo per coprire anche tiger.