Cep telefonlarında java programlarının çalıştığını gördünüz veya dıydunuz. Siz de cep telefonlarında çalışan bir java programı yapmak istiyorsunuz. Bunun için J2ME öğrenebilirsiniz. Bu yazıda J2ME'ye bir giriş yapılacaktır.
J2ME, java'nın cep telefonları gibi sınırlı özellikleri olan cihazlarda çalışması için geliştirilmiş bir edition'dır. Standart edition ile yaptığınız bir programı cep telefonunda çalıştıramazsınız. Cep telefonlarında çalışan bir program yapmak istiyorsanız J2ME öğrenmelisiniz.
İşe önce J2ME kodları geliştirebilmenizi ve çalıştırabilmenizi sağlayan bir program bularak başlamalısınız. Sun şirketinin sitesinden ücretsiz indirilebilen J2ME Wireless Toolkit'i indirebilirsiniz. Bu programın kendisi kod yazmak için değildir. Bu program başka bir editorde yazmış olduğunuz kodları derleyip sonucu görebilmenizi sağlar. Sun ONE Studio ME(Mobile Edition) ise kod yazmanızı, derlemenizi ve çalıştırmanızı sağlar.
J2ME edition'u şu paketlerden oluşmaktadır.
java.io
java.lang
java.util
javax.microedition.io
javax.microedition.lcdui
javax.microedition.midlet
javax.microedition.rms
java.io,java.lang ve java.util paketleri standart sürümdeki class'ların hepsini içermez. Örneğin ArrayList,StringTokonizer gibi class'lar yoktur. javax.microedition.lcdui (lcdui-Limited Connected Device User Interface) adından anlaşılacağı üzere cep telefonları ve benzer aletler için bir arayüz paketidir. javax.microedition.rms paketi cep telefonunun hafızasına bilgi kaydetip ve hafızadan bilgi okumak içindir. En önemli paket javax.microedition.midlet paketidir ki bu pakette sadece bir class vardır: MIDlet. Cep telefonlarında çalışan ana uygulama class'ı(Buna Midlet denir.) MIDlet class'ını exteds etmelidir. Bu applet'lere benzer. Applet class'ı extends etmeden applet yazılamadığı gibi MIDlet class'ını extends etmeden midlet yazılamaz. Aşağıda hiç bir şey yapmayan bir midlet örneği bulunmaktadır
startApp(),pauseApp() ve destroyApp(boolean unconditional) method'ları abstract method'lardır. Yani bir midlet yazmak
istiyorsanız bu methodların içini doldurmalısınız.(override) Bizim midletimiz hiç bir şey yapmadığı için bu method'ların
içini boş bıraktık. Böylece cep telefonları için bir uygulama yapmış olduk. Şimdi bir Hello World örneği yapalım.
startApp method'u midlet yüklendiğinde çağrılan method'tur. Biz bir TextBox yaratıyoruz.
Display.getDisplay(this).setCurrent() method'u ekranı set etmek için kullanılır. Parametre olarak bir Screen nesnesini
ister. TextBox screen class'ını extends ettiği için ekranda gözükmektir
HelloWorld Midlet
HelloWorldMidlet gerçek cep telefonlarında nasıl çalıştırılır? Bir midlet projesi derlendiğinde jar ve jad dosyası yaratılmaktadır. (Bu işi Sun ONE,Wireles Toolkit vs. programlar yapmaktadır.) jar dosyasında class'lar,resimler,ses dosyaları vs.. sıkıştırlmış bir şekilde bulunmaktadır. jad dosyası ise jar dosyası ve midlet hakkında bilgiler tutar. Bir midlet iki türlü yüklenebilir. Birincisi bilgisayardan cep telefonuna yüklenebilir. Diğeri ise uydu üzerinden. Uydu üzerinden yüklenmesi için wap sitesine .jad ve .jar dosyaları konulur. Java destekli telefonlarda bulunan JAM(Java Application Manager) çalıştırılarak bir midlet telefona yüklenebilir. JAM önce jad dosyasını yükler ve bu bilgilere göre jar dosyasını indirir ve midlet telefonunuza inmiş olur. Telefondaki browser ile de bir jad içeren wml sayfasına girip bu jad dosyasına tıkladığınızda dowload işlemi kendiliğinden başlatılır.
Şu anda piyasada java destekli telefonların oranı fazla değildir ancak 1-2 sene sonra cep telefonlarının çoğu java destekli olacaktır. Siz J2ME öğrenerek bir adım önde olabilirsiniz.