ficho ti je objasnio više-manje sve... nije do kompajlera, java je standard (ima razlike u verzijama koje klase se koriste, koje su izbačene i zamijenjene novima i blabla.. nevažno). stvar je u tome da pojedini proizvođači pišu svoje libraryje koji se koriste za kreiranje aplikacija na njihovim mobilnim platformama, ponajviše je tu u igri GUI, ali i neke druge stvari oni napišu sami. uglavnom, možeš na forum.nokia.com vidjeti i DLati libraryje za nokiju... ako radiš po njima, radit će ti aplikacija na njoki i ničem drugome... tako i za ostale.

ovisi što želiš raditi, sâm kôd, odnosno jezgru aplikacije radiš u J2ME APIju i to je onda portabilno na gotovo sve java mobitele (ako podržavaju cijeli J2ME API.. neki npr. nemaju podršku za sockete pa komunikacija s nekim serverom byebye). GUI onda samo prilagodiš pojedinom mobu radeći s libraryjima tog proizvođača. to je najbolji slučaj, ako sve što ti želiš isprogramirati je podržano u J2ME APIju. ono što nije, to su si proizvođači razvili svoje i onda nema prijenosa između mobitela...

vjeruj, nije komplicirano koliko sam ja to zakomplicirao ovdje ako radiš nekaj jednostavno, bez puno kićenja aplikacije u grafičkom sučelju, onda će ti bit okej.. ako ćeš igrati na kartu da mora bit super dotjerano grafički, onda ćeš se morati zabavljati s libraryjima svakog proizvođača, njegovim emulatorima i štatijaznam...