2 Ni dung Xut s c im Java Development Kit (JDK) Mt s IDE dng cho Java Chng trnh Java n gin 3 I. Xut s Java l mt ngn ng lp trnh mi do mt nhm cc nh khoa hc ca hng Sun Microsystems sng to nn. Java c bit hng i tng v rt mnh v Internet. Lch s Java bt u t 4/1991, khi mt nhm lp trnh ca Sun c giao nhim v thc hin n vi tn gi Green. 4 Green l n nhm a cc k thut tin hc vo nhng thit b in t thng mi, nh mt cuc t ph v k thut, qua duy tr tc pht trin v li nhun ca hng. Lnh o n l James Gosling quyt nh cn c mt ngn ng tha mn tnh uyn chuyn (portability). 5 Lc c ngn ng C++ t ra kh uyn chuyn nhng vn cha p ng c yu cu ca n. Bi v, tnh uyn chuyn y khng nhng v pha m ngun chng trnh m cn c vi b x l. Trong khi cc thit b in t thng mi c nhng b x l khc nhau v vng i ngn. 6 Nu s dng ngn ng C++, khi gp mt b x l mi cn phi thay i chng trnh dch, ri bin dch li chng trnh. Ngoi ra C++ l ngn ng kh phc tp Thng 8/1991, J.Gosling bt tay vo vic thit k ra mt ngn ng mi v t tn l Oak /ouk/ (Cy si). 7 ng ta gii thch cch t tn cho ngn ng mi ny l cy si bi v trong qu trnh a vo cu trc th mc cho ngn ng mi, ng nhn qua ca s phng lm vic v thy cy si. Ban u Oak khng c quan tm n, thm ch c ngi cn gii thch Oak l vit tt ca cc ch ci trong cm Object Application Kernel .^_^. 8 Khong ma xun 1994, khi cc nh lnh o ca Sun Microsystems hoch nh cc chnh sch thng mi lin quan n Internet, Oak mi c ch n. Sau , J.Gosling cng mt s ng nghip m thm lm vic a Oak n vi Internet trong gn mt nm tri. 9 Thng ging nm 1995, Oak c i tn thnh Java. Nguyn nhn chnh l do Oak trng tn vi mt sn phm thng mi ng k bn quyn. Ngy 23/5/1995, Java c Sun chnh thc cng b Sun World95. 10 II. c im ca Java Tnh uyn chuyn ca java do chng trnh bin dch to ra m byte (bytecodes) khng ph thuc h thng my s dng. Bytecodes l tp hp cc cu lnh tng t nh nhng lnh m my (machine code), n c to ra khi mt chng trnh Java c bin dch xong. 11 S khc nhau y l m my ch thc hin trn h thng my tnh m n c bin dch, trong khi bytecodes c th thc hin trn bt k h thng no c trang b trnh iu khin Java (JVM, thng dch). Tnh uyn chuyn lm tng kh nng ti s dng ca cc lp to ra, tc l lm ni bt tnh hng i tng. 12 Back Source Code Java (*.java) Win9x/WinNT ... Linux/Unix... Bytecodes Java (*.class) J a v a
C o m p i l e r
( j a v a c ) J a v a
I n t e r p r e t e r
( j a v a ) Win32 Linux Solaris . 13 Mt s c tnh ca Java do Sun a ra Java l n gin (simple): java c k tha t C++, v c loi b i cc tnh nng kh nht ca C++, dn n java d s dng hn. Do yu cu ca cng vic, java phi c dng v nh cc ngn ng hin hnh v i hi thi gian hun luyn ngn. 14 Java hng i tng (Object Oriented): V d v chi ca tr em, sn phm ca lp trnh hng cu trc l mt ta lu i bng nha lin (c thnh), nu a tr mun c mt chic t nha th Tm li, ging nh nhng khi Lego, cc lp ca Java cng rt linh hot v c s dng li nhiu ln. 15 Java l mnh (robus): java c sn tnh nng automatic garbage collection b nh c gii phng mt cch t ng, nh lp trnh vin c th trnh c nhng h hng b nh v bo m tnh ton vn d liu. 16 Java c tnh c lp vi cu trc (architechture neutral): y l im c sc nht ca java, c ngha l java khng ph thuc vo h my (platform loi my v h iu hnh). Java c tnh di ng (portable): kh nng c lp h my gip java c th di chuyn trn phm vi rng. Cc loi giao din d liu cng nh dng v v cm nhn ca java u ging nhau trn mi h my. H thng cc thnh phn ca java cng c tnh di ng cao chng c vit bng java. 17 Java l ngn ng thng dch (Interpreted): y l c im lin quan trc tip n tnh khng ph thuc vo h my ca Java. (s ). Java l tc cao (hight performance): Cc d n ca java thng c tch thnh nhiu module, nh vy tc thc thi thng rt cao. 18 Java l a lung (Multithreaded): trnh ng dng ca java thng bao gm nhiu qu trnh xy ra ng thi. Tnh a lung ca Java cho php ta c th bin son phn mm p ng tt hn, tng tc tt hn, v thc hin theo thi gian thc. Java c tnh ng (dynamic): v java c thit k p ng mi trng tc nghip lun trong tnh trng thay i. Khi c yu cu mi trn th trng, cc i tng mi s c b sung. 19 III. Java Development Kit C hai chng trnh c bn thng dng: - Khi bin dch mt chng trnh vit bng java : javac file.java - Sau khi bin dch, tp tin file.class c sinh ra, thc thi chng trnh, i vi ng dng thng thng ta s dng : java file i vi cc Applet ta s dng : appletviewer file.java hoc appletviewer file.htm 20 IV. Intergreted Development Environment for Java Ci t java : Download J2SE (JavaTM 2 Platform Standard Edition Development Kit 5.0) v ci t vo h thng ang s dng. i vi WinNT J2SE bao gm 2 phn, l JRE v JDK. Tin hnh ci t JDK, sau ci JRE. Mt s IDE thng dng ca Java nh: JPadPro, SitePadPro, NetBeans, JBuilder, Eclipse 21 hiu r bn cht ca chng trnh Java, trc ht nn th khng cn s dng IDE dch v chy java, hoc c th s dng SitePadPro, hay JPadPro l nhng IDE n gin h tr java. Nhng phn mm ny lm vic trong mi trng Windows, c th download ti a ch http://www.modelworks.com. Hng dn ci t v s dng JPadPro 5.1 . 22 Bn cnh ta c th s dng mt s cng c chuyn dng thit k chng trnh Java nh: NetBeans Developer ca Sun (http://www.netbeans.com); JBuider ca Borland Inprise (http://www.Inprise.com) IDE ca java c nh gi l thun tin nht hin nay l Eclipse (http://www.eclipse.org) Hng dn s dng Eclipse . 23 Hng dn thit lp Path cho h thng: thm vo ng dn tuyt i ca th mc bin ca java cho bin mi trng Path ca WinNT, hoc cho tp Autoexe.bat ca Win9x . Hng dn cu hnh Java trnh duyt c th xem c cc Applet ca java: Vo Control Panel > Java > Advanced 24 V. Chng trnh HelloWord Java c nhiu loi ng dng khc nhau, bao gm: Console, Applet, Frame, Servelet Console l loi ng dng n gin nht ca Java (cha c khai bo c bit, hay s dng cc th vin). on m sau l chng trnh m u ca ng dng Console: 25 public class HelloWorld { public static void main(String[] args) { System.out.println(Hello World); } } Ch java phn bit ch hoa vi ch thng. Lu on m trn vo file c tn l HelloWorld.java, lu tn file phi trng vi tn lp (c phn bit kiu ch), v phn m rng ca n l *.java M ca s DOS, tm ti th mc cha file trn, dch chng trnh bng lnh javac, ri chy n bng lnh java 26 Applet: y l loi ng dng rt mnh ca java trn lnh vc Internet, y l chng trnh HelloWorld ca n: //<applet code=HelloWorld width=200 height=200></applet> import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString(HelloWorld!,5, 15); } } 27 Lu on m trn vo file HelloWorld.java, sau vo DOS bin dch n bng lnh java chy Applet, ta c hai cch: - Dng trnh appletviewer: appletvieuwer HelloWorld.java - Chy qua trnh duyt bng cch to mt file *.htm. 28 Frame - ng dng ha: java c th vin AWT (Abstract Windowing Toolkit) cung cp tng i y cc thnh phn GUI nh button, label mc nng cao, java cn c JFC (Java Foundation Class). Frame l mt ng dng c lp (ging form trong C#), n hot ng nh mt Container hay nh mt thnh phn (Component). Sau y l mt ng dng Frame n gin: 29 import java.awt.*; class HelloWorld extends Frame { Label label1 = new Label(HelloWorld !); public HelloWorld(String title) { super(title); add(label1); } public static void main(String args[]) { HelloWorld f = new HelloWorld(Label); f.setSize(300,200); f.show(); } } 30 Lu on m va son tho trn vo file HelloWorld.java, sau dng javac bin dch n, ri dng java thng dch. Kt qu s l mt Frame c dng ch HelloWorld.