Java Temelleri : Java kurulum ve yazilim gelistirme

advertisement
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;
dersmax.net
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.
dersmax.net
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
dersmax.net
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
dersmax.net
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:
dersmax.net
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/
dersmax.net
Java kurulum ve yazilim gelistirme
6
Download