Java kurulum ve yazilim gelistirme Java kurulum ve yazilim gelistirme Bu yazı dizisi ile sıfırdan bir java yazılım geliştirme ortamı kurup temel modern bir java projesinin nasıl olusturulacagını anlatmaya calışacagım Java programlama dilinde tüm kod dosyaları düz metin olarak yazılır ve .java uzantısı ile kayıt edilir. Daha sonra dosyalar JAVAC derleyicisi(complier) ile derlenir ve .class uzantılı bir dosya içerisne alınır. Mesela bir a.class dosyası içerisinde kod içermez. Çünkü kodlar bytecode lara çevrilmişti. Java Sanal Makinesinin (Java Virtual Machine) anlayıp makine diline çevirebileceği bir yapıya bürünmüştür. Bir grafik ile göstermek gerekirse. Bu sayede java dili, tamamen platformdan bağımsız ve taşınabilir bir yapıya sahip oluyor. Çünkü Java Sanal Makinesi Microsoft Windows, the Solaris Operating System (Solaris OS), Linux ve Mac OS. sistemlerinde sorunsuz çalışabilmektedir. Java Platformu Bir platform hardware yada software ortamlı çalışan bir program olabilir. Daha önce de dediğimiz gibi java Microsoft Windows, Linux, Solaris OS, and Mac OS gibi en popüler işletim sistemlerinde çalımaktadır. Günümüzde birçok platform donanım ve yazılım ortamlarına bağımlı kalamaktadır. Javayı diğer platformlardan ayıran en büyük özellikte budur. Java platformu temel olarak iki component den oluşur. Bunlar; www.dijitalders.com Java kurulum ve yazilim gelistirme 1 Java kurulum ve yazilim gelistirme * Java Sanal makinesi(The Java Virtual Machine) * Uygulama Geliştirme Arayüzü (The Java Application Programming Interface (API)) Java sanal makinesi: Aslın konu genelinde çokça bahsettik. Temel görevi, derlenmiş bytecode' u makine diline çevirmektir. www.dijitalders.com Java kurulum ve yazilim gelistirme 2 Java kurulum ve yazilim gelistirme En çok kullanılan işletim sistemlerine uyumlu olduğu için java diline platformadan bağımsız ve taşına bilir bir özellik katar. Uygulama Geliştirme Arayüzü: Kısaca tanımlarsak geniş bir kod kolleksiyonuda diyebiliriz. Java dili ile geliştireceğimiz uygulamalarda büyük kolaylıklar sağlayan, kullanışlı sınıf(class) kütphaneleri(libary), arayüzler(interface) ve fonksiyonların bulunduğu paketler bütünüdür. İleride uygulamalar geliştirmeye başladığımızda bu yabancı terimlerin herbiri sizlere çok tanıdk gelecek. Artık java dili hakkında en azından bir fikir sahibisniz. Unutmayın başlamak bitirmenin yarısdır. Herkese kolay gelsin. Java SDK kurulumu Java kaynak kodunu derlemek ve java dil kutuphanelerinden yararlanmak icin Java SDK (Software Development Kit ) ya ihtiyaciniz vardir. Java SDK sadece Sun degil farkli uretici sirketler tarafindan gelistirilmektedir. Bilinen Java SDK'lari arasinda Sun, IBM ve Linux'a ozel BlackDown sayilabilir. Bu yazida java'nin ana gelistiricisi olan Sun'in yazilim gelistirme kiti goz onune alinacaktir. Bunun icin gerekli adimlar sunlardir. Isletim sistemi olarak is yerinde kullandigim Windows XP Professionel'i sectim ama ilerde Linux altinda ne gibi farklar olabilecegini de yazacagim. 1- Java SDK'nin indirilmesi. Kisaca: www.java.sun.com adresinden yaklasik 50MB'lik J2SE SDK'yi indirin. Uzun Aciklama: Java'nin kaynak sitesi olan http://www.java.sun.com (veya yeni site adiyla http://developers.sun.com) Sayfanin sag tarafindaki "Related Links" yazili kutudan J2SE SDK 1.4.2 baglantisina tiklayin. (ya da dogrudan http://java.sun.com/j2se/1.4.2/download.html baglantisina da gidebilirsiniz ama ileriki surumler icin bu baglanti degisecektir.) Gelen sayfada cesitli secenekler mevcut. Sun, isteyenlere SDK'yi NetBeans asi verilen grafik arayuzlu bir Java gelistirme yazilimi ile birlikte sunuyor ama biz simdilik saf SDK istedigimizden alt bolumdeki "Download J2SE v 1.4.2_03" baslikli bolumdeki "32-bit/64-bit for Windows/Linux/Solaris SPARC 32-bit for Solaris x86 " satirindaki "SDK" baglantisini seciyoruz. Gelen yazilim anlasmasindan " accept, kabul " secenegini secerek asil indirme sayfasina erisiyoruz. Burada cesitli platformlar icin SDK'lar mevcut (Windows, Solaris, Linux, Linux itanium gibi), 48MB'lik Windows off-line installation secenegini secerek indirmeye baslayabiliriz. Sayfada Mac OSX icin bir baglanti yok, bunu http://www.apple.com/java/ adresinden indirebilirsiniz. Linux'a ozel tamamen ayri gelistirilen www.dijitalders.com Java kurulum ve yazilim gelistirme 3 Java kurulum ve yazilim gelistirme Blackdown ise http://blackdown.org/ adresinden indirilebilir. BlackDown su an icin AMD 64bit destegi veren tek JavaSDK'si ve oldukca hizli olmasi ile taniniyor. Guncelleme: Yeni JavaSDK 1.5'in bu bahar cikmasi bekleniyor. Pek cok yeniligi beraberinde getirecek olan 1.5 surumu AMD 64 sistemlere 64 bitdestegi de verecek. (32 bit Java destegi zaten var) 2- Java SDK'nin kurulumu. Kisaca: Yazilimi sihirbaz'i izleyerek kurun. Indirme islemi tamamlandiktan sonra kurma islemine exe dosyayi cift tiklayarak baslayabiliriz. Kurulum oldukca kolay, adim adim ilerlemeniz yeterli. Yazilim eger her seyi "next" diyerek ilerlerseniz kendisini C:\j2sdk1.4.2_03\ dizinine kuruyor. isterseniz kurulum sirasinda ismi biraz kisaltip baska sabit diske de kurabilirsiniz. (kurulduktan sonra klasor isimlerini degistirmeyin!) Asagidaki bilesenler sisteme kurulur. Java yazilim gelistirme araclari, derleyici, kutuphaneler vs. Sadece SDK'nin kullanimina acik Java sanal makinesi JRE. Bu ...SDK klasoru\jre altina kuruluyor. Cesitli demo uygulamalar Muhtelif java kutuphanelerinin kaynak kodu Genel kullanima acik Java sanal makinesi. Bu C:\Program Files\Java\j2re1.4.2_03 klasorune kuruluyor. Bu JRE hem java yazilimlari hem de icindeki plug-inler ile birlikte internet tarayicilari tarafindan kullaniliyor. Ilk java yaziliminin calistirilmasi 1- Kodun yazilmasi. Kisaca: herhangi bir editore asagidaki kodu kopyalayin. Yazilimi yazmak icin editor olarak baslangicta notepad, , bedava kucuk ve guclu Crimson Edit (http://www.crimsoneditor.com/), alismasi zor olan ama cok guclu konsol editoru vim (www.vim.org), ticari UltraEdit , ya da benim sahsi favorim java ile gelistirilmis www.dijitalders.com Java kurulum ve yazilim gelistirme 4 Java kurulum ve yazilim gelistirme son derece guclu ama biraz iyi bilgisayar isteyen Jedit'i (www.jedit.org) kullanabilirsiniz. Normalde hazir Gorsel java gelistirme yazilimlarinin kendi guclu editorleri de var ve klasik genel amacli editorlerin sunmadigi pek cok yazilim kolayligi da sagliyorlar, ama biz simdilik onlarla ilgilenmeyecegiz. Ornek kod: public class TestSinifi { public static void main(String[] args) { System.out.println("Merhaba Dunya, naber java?"); } } 2- Kodun saklanmasi. Kisaca: kodu "TestSinifi.java" olarak belirli bir yere kaydedin. Java kodlari .java uzantili dosyalarda saklanir. Dosyanin adinin public sinif adi ile ayni olmasi sarttir. Editore yazmis oldugunuz kodu adi ve uzantisi "TestSinif.java" olacak sekilde ornegin C:\jproje\test\ klasoru altina kopyalayin. Bu klasor java projelerimizin tutuldugu yer olacak. ilk projemiz test projesi. 3- Kod yazma kurali: Kisaca: Standart java kod yazma kuralini takip edin Java kodunu yazarken gereken temel iki tane java kodlama kuralini soyleyeyim. Bu kurallar mecburi degildir ama mevcut yazilimlarin cogu bu notasyonu kullandigindan kullanilmasi siddetle tavsiye edilir. Sinif isimlerinde her kelimenin bas harfi buyuk, kelimeler bitisik yazilir ( Ornek: TestSinifi, BenimSinifim, Mesaj, StringToXml gibi.) Sinif uye degisken isimleri ilk kelimenin bas harfi kucuk, diger kelimelerin bas harfi buyuk ve bitisik olacak sekilde yazilir. Bu yazilim sekline sanirim "deve tipi" ismi verilmis ( benBirKucukDeveyim, ilkDeger, model, enKucuk gibi. ) Ayrintili kod yazma kurallarina suradan erisebilirsiniz. Ama kendinizi bazi konularda cok zorlamayin. ornegin {} isaretlerinin baslangic ve bitisi, tab kullanimi ve satir baslarindaki bosluk sayisi kavramlari yazilimcidan yazilimciya degisebilir. Sahsen ben hic tab kullanmadan "{" isaretini satir sonuna koyarak ve uc bosluk iceri yazarak kodlamayi tercih ediyorum, ama ustam "{" isaretinin bir satir asagi koyulmasini istiyor, o yuzden ona uyacagim. (bazi baska usta yazilimcilarin onerisi de bu yonde http://www.javaranch.com/style.jsp) Isin iyi yani guclu editorlerin bir kismi otomatik yazim kurali destegi veriyor. yani siz yazim kuralini seciyorsunuz, tum kod bir anda duzenleniyor . O nedenle bu konu o kadar da buyutulecek bir sey degil, sadece yukaridaki iki kurala sadik kalmak uzere herkesin uzlastigi ortak bir stilde anlasin yeter. 4- Kodun derlenmesi. Kisaca: Konsoldan "javac TestSinifi.java" yazarak kodu derleyin Java kodu'nun calisabilmesi icin kodun derlenmesi gerekir. Derleme islemi kurmus oldugumuz SDK icerisindeki javac yazilimi ile gerceklestirilir. Bildiginiz gibi bu yazida hazir java yazilim araclari (Ayrintili liste icin suraya bakin) ile degil konsoldan calisacagiz. Windows'ta konsolu calistirmak icin Start menusunden Run secenegini secin, bosluga cmd yazip Enter tusuna basin. Eski dos gunlerini andiran siyah bir ekran gelecek. (Not: Linux'un konsolu Windows'tan cok daha kolay kullanisli ve gucludur. ama idare edecegiz ). Onerim yazi tipini ve boyunu kucultup ekrani ve buffer boyunu biraz buyutun. Daha sonra java kodumuzu kaydettigimiz C:\jproje\test\ klasorune gidin (burada bir ipucu, Windows XP'de bir klasor ya da dosyanin adini hatirlayamazsaniz herhangi bir harf ya da hic bir sey yazmadan tab tusuna basarak var olan klasor ve dosyalarin otomatik olarak gelmesini saglayabilirsiniz. unix'tan gelme bir sey.) ve "javac TestSinifi.java" yazarak enter'e basin. Eger hic bir sey soylemeden yeni komut satirina gecerse derleme basarilmis demektir. "dir" komutu ile dosyalari incelediginizde ayni klasorde "TestSinifi.class" dosyasinin olustugunu goreceksiniz. Eger sistem asagidaki gibi bir mesaj verirse, bu yazilimin kaynak kodunda hata var demektir. derleyici hatanin yerini gosterir. Ornegin asagidaki mesaj koddaki 4. satirdaki System.out... satirinin sonundaki ");" isaretinin silinmesi ile olusur. TestSinifi.java:4: ')' expected } ^ 1 error Eger sistem 'javac' is not recognized as an internal or external command,operable program or batch file. seklinde bir mesaj verirse, bu durumda javac yazilimina bulundugumuz klasorden erisilemedigini anlariz. Bu hatayi ortadan kaldirmak icin iki yol onerilebilir. Birincisi ve en garantili yol, javac.exe yaziliminin bulundugu SDK klasorundeki "\bin" alt klasorunu PATH bilgisine eklemektir. Windows XP'de her acilista bu bilginin eklenmesi icin asagidaki yontem izlenir. Masaustundeki "My computer" ikonuna sag tiklayin, ve properties secin. Advanced tabini secin, oradan da alt taraftaki Environment Variables dugmesine tiklayin. Cikan ekrnin alt bolumundeki System Variables listesinden "path" degerini bulun. Daha sonra "edit" dugmesine basin. Satirin sonuna ";c:\jdk1.4.2_03\bin" bilgisini ekleyin (noktali virgulu unutmadan). Tamam ya da apply ile o pencereyi kapatin. Simdi tekrar ayni komutu vererek calistirmayi deneyin. bazen komut window'u yeni path bilgisini algilayamayabiliyor, komut ekranini kapatip acmaniz gerekebilir. Ikinci yol ise komut satirindan sunu yazmaktir: www.dijitalders.com Java kurulum ve yazilim gelistirme 5 Java kurulum ve yazilim gelistirme path = %PATH%;c:\jdk1.4.2_03\bin Bu sekilde varolan path bilgisine JAva SDK dizini de eklenmis olur. Ancak bunu her sistem acilisinda tekrar etmeniz gerekebilir. Bazen bu komutu bir bat dosyasina yazmak isinizi kolaylastirabilir (ikinci yazida bu konuya aciklik getirecegim umarim) Eger sadece javac yazip enter tusuna basarsaniz java derleme seceneklerine iliskin bilgiler goruntulenir. Bunlar arasinda ilginc olanlar eger javac -d C:\jproje\test\out TestSinifi.java yazarsaniz olusan class dosyasi test\out klasoru icine atilir. Genellikle class dosyalarinin \out adinda ayri bir dizinde saklanmasi saglanir. Ayrica java derleyicisinin sahnenin gerisinde neler cevirdigini merak ediyorsaniz javac -verbose TestSinifi.java yazabilirsiniz. Asagidaki gibi ilginc seyler gorebilirsiniz bu sekilde. (benim kullandigim sistemde JSDK'nin yeri farkli yerde) C:\jproje\test>javac -verbose TestSinifi.java [parsing started TestSinifi.java] [parsing completed 70ms] [loading c:\usr\jdk1.4.2\jre\lib\rt.jar(java/lang/Object.cl ass)] [loading c:\usr\jdk1.4.2\jre\lib\rt.jar(java/lang/String.cl ass)] [checking TestSinifi] [loading c:\usr\jdk1.4.2\jre\lib\rt.jar(java/lang/System.cl ass)] [loading c:\usr\jdk1.4.2\jre\lib\rt.jar(java/io/PrintStream .class)] [loading c:\usr\jdk1.4.2\jre\lib\rt.jar(java/io/FilterOutpu tStream.class)] [loading c:\usr\jdk1.4.2\jre\lib\rt.jar(java/io/OutputStrea m.class)] [wrote TestSinifi.class] [total 521ms] Peki birden fazla dosya derlemek istersek ne yapacagiz? Bu durumda javac TestSinifi.java Blah.java Hello.java seklinde ardi ardina java dosyalarini ekleyebilirsiniz. ya da o anki dizindeki tum java dosyalarini derlemek icin javac *.java yazilabilir. Eger alt dizinlerde yer alan java dosyalarini da derlemek istiyorsaniz kaynak dosyalarin kokunu derleyiciye soylemeniz gerekir. javac sourcepath C:\jproje\test *.java 5- Derlenen kodun calistirilmasi: Kisaca: "java -cp C:\jproje\test TestSinifi.class" ile kodu calistirin. Derleme sonrasinda gene konsoldan "java -classpath C:\jproje\test TestSinifi" yazin. Eger bir sorun yoksa sistem calisacaktir ve ekrana "Merhaba Dunya, naber java?" yazisi cikacaktir. classpath bilgisi ile java'ya class dosyalarinin yani siniflarin yerini gostermis oluyoru. Bu konuda ikinci yazida aciklik getirmeye calisacaim. Ilk calistirma sirasinda bir iki saniyelik bir gecikme olabilir, bunun nedeni bellekte bir Java sanal makinesinin olusturulmasidir. Eger asagidaki mesaj cikarsa, tipki derleme asamasinda oldugu gibi sistem "java" yazilimini bulamiyor demektir. 'java' is not recognized as an internal or external command,operable program or batch file. Bunun icin en guzeli su islemi gerceklestirin: Gene onceki asamadaki sistem degiskenleri ekraninda System variables icinde "JAVA_HOME" degiskeni varmi diye bakin, eger yoksa onu da ekleyin. Bunun icin new dugmesine basip Variable name bolumune "JAVA_HOME", Variable value bolumune ise "C:\Program Files\Java\j2re1.4.2_03" bilgisini girip tamam tusuna baisn. (ya da tam olarak JRE hangi klasore kurulmussa ona gore, hata yapma olasiligi her zaman var, iyice kontrol edin.). Ayrica path icerisine ";%JAVA_HOME%\bin" (tirnak isaretleri haric tabi) ekleyin. Artik yazilimin calismasi gerekir. Eger derleyip calistirmaya calistiginiz java sinifinda public static void main(String[] args) {} metodu yoksa, asagidaki hata mesaji ile karsilasirsiniz. Exception in thread "main" java.lang.NoSuchMethodError: main Eger, sistem icinde main metodunu barindiran soz konusu sinifi bulamazsa asagidaki hatayi verir. Bu hatayi olusturmak icin "java cp C:\jproje TestSinifi" yazin. java belirtilen dizin icinde TestSinifi.class dosyasini bulamadigindan asagidaki hatayi verecektir. Exception in thread "main" java.lang.NoClassDefFoundError: TestSinifi Burada iki not, bu ornek icin -classpath C:\jproje\tmp yazmaya gerek olmayabilirdi. .class dosyasinin oldugu yerde dogrudan java TestSinifi yazmak yazilimi calistirmak icin yeterli olabilirdi. Ancak aliskanlik kazanmak icin classpath bilgisini her zaman yazmayi tercih edin. Ayrica, -classpath kelimesi yerine -cp yazmak yeterli olur. 6- Neden main metodu? Kisaca: main java'ya yazilima baslangic noktasi gosterir. main metodu ozeldir. derlenen java siniflarini calistirabilmek icin java'nin bir baslangic noktasina ihtiyaci vardir. main metodu bu baslangic noktasini tamsil eder. main metodun baslangic noktasi ozelligine sahip olabilmesi icin public static void main(String[] args) yapisinda olmasi gerekir. args kelimesi bile "args" olarak kullanilmalidir. Her java sinifi icerisinde bu sekilde main metodu barindirabilir. Bu su anlama gelir, bir java yaziliminin farkli baslangic noktalari olabilir. Kaynak www.forumex.net/java/62623-java-kurulum-ve-yazilim-gelistirme.html , www.thecoders.net/ www.dijitalders.com Java kurulum ve yazilim gelistirme 6