D. Java Development Kit - JDK
Java Development Kit (JDK) je balφk program∙ od firmy Sun
Microsystems pro v²voj aplikacφ v Jav∞. Tento balφk je poskytovßn zcela
zdarma a je obsa╛en v n∞kter²ch distribucφch Linuxu (nap°φklad RedHat).
Nejd∙le╛it∞j╣φ programy v JDK jsou p°ekladaΦ javac a interpret
java . Dßle tam lze najφt nap°φklad debugger, program na vytvß°enφ
dokumentace apod. A nynφ trochu podrobn∞ji o JDK 1.1.3.
D.1. SystΘmovß prom∞nnß
CLASSPATH
Tato prom∞nnß obsahuje cestu k adresß°∙m a/nebo soubor∙m .zip nebo
.jar, kde bude JVM hledat importovanΘ balφky. Nastavenφ tΘto prom∞nnΘ je zßvislΘ na operaΦnφm systΘmu:
Priklad D.1. |
Pod Windows95/NT:
set CLASSPATH = C:\PROGRAM\JDK1.1.3\LIB\CLASSES.ZIP;D:\MYCLASSES;.
Pod unixem (tcsh):
setenv CLASSPATH /usr/local/jdk1.1.3/lib/classes.zip:~/myclasses:.
|
|
N∞kterΘ programy z JDK umo╛≥ujφ nastavenφ CLASSPATH pomocφ
p°epφnaΦe -classpath.
D.2. P°ekladaΦ javac
Pro p°eklad zdrojovΘho textu do bytovΘho k≤du Javy se pou╛φvß p°ekladaΦ
javac . Syntaxe p°φkazovΘ °ßdky je:
javac [ p°epφnaΦe ] soubory
P°ekladaΦ umo╛≥uje p°elo╛it libovoln² poΦet zdrojov²ch soubor∙ (jejich
nßzvy musφ konΦit p°φponou .java ). P°eklad lze ovlivnit p°epφnaΦi.
Zßkladnφmi jsou:
- -classpath cesta
- Parametr
cesta urΦuje, kde majφ
b²t vyhledßvßny t°φdy, na kterΘ se odvolßvß zdrojov² text,
- -d adresß°
- p°ekladaΦ bude p°elo╛enΘ t°φdy uklßdat do
adresß°e , kter² je pova╛ovßn za ko°en hierarchie t°φd,
- -g
- p°ekladaΦ p°i tΘto volb∞ za°adφ do v²slednΘho souboru ladicφ
informace o lokßlnφch prom∞nn²ch (Φφsla °ßdk∙ jsou za°azeny implicitn∞),
- -verbose
- p°ekladaΦ bude zobrazovat v╣e co prßv∞ d∞lß,
- -O
- p°ekladaΦ provede optimalizaci bytovΘho k≤du a nebude
vklßdat ╛ßdnΘ ladφcφ informace.
D.3. Interpret java
Program java je interpret, kter² zpracovßvß bytov² k≤d vytvo°en²
programem javac . Interpret se spou╣tφ z p°φkazovΘ °ßdky jejφ╛ syntaxe
je:
java [ p°epφnaΦe ] JmΘnoT°φdy [ argumentyProgramu ]
JmΘnoT°φdy je ·plnΘ jmΘno t°φdy, kterß obsahuje metodu main() .
NepovinnΘ parametry argumentyProgramu se p°edajφ programu, p°epφnaΦe umo╛≥ujφ nastavit vlastnosti interpretu (lze nap°φklad nastavit
velikost pam∞ti pro pot°eby interpretu). Celkov² seznam v╣ech p°epφnaΦ∙ lze
vypsat spu╣t∞nφm programu java bez parametr∙.
D.4. Prohlφ╛eΦ appletviewer
Program appletviewer slou╛φ pro zobrazenφ applet∙ obsa╛en²ch v HTML
souborech. Syntaxe tohoto programu je:
appletviewer [-debug] URL
URL udßvß URL adresu HTML dokumentu, kter² se mß naΦφst. Ka╛d² applet,
kter² HTML dokument obsahuje, se zobrazφ ve zvlß╣tnφm okn∞. P°epφnaΦ
debug zp∙sobφ, ╛e bude zßrove≥ spu╣t∞n i program jdb , pro lad∞nφ appletu.
D.5. Debugger jdb
Program jdb slou╛φ pro lad∞nφ program∙ napsan²ch
v Jav∞. (1) Tento
debugger je textov∞ orientovßn a v╣echny povely jsou zadßvßny
z p°φkazovΘho °ßdku. Zde je uvedeno jen n∞kolik:
- help, ? - vypφ╣e seznam v╣ech p°φkaz∙,
- load t°φda - nahraje t°φdu,
- stop in t°φda.metoda, stop at t°φda:°ßdka - nastavφ
breakpoint,
- step - provede aktußlnφ °ßdku,
- cont - pokraΦuje v provßd∞nφ programu od breakpointu,
- list [°ßdka] - vypφ╣e Φßst zdrojovΘho k≤du,
- locals - vypφ╣e v╣echny aktußlnφ lokßlnφ prom∞nnΘ,
- run t°φda[arg] - spustφ t°φdu.
Priklad D.2. |
Lad∞nφ programu z kapitoly 4.2.1..
Initializing jdb...
> load Parametry
0x404f7be0:class(Parametry)
> stop at Parametry:5
Breakpoint set at Parametry:5
> run Parametry Prvni program v Jave!
running ...
main[1]
Breakpoint hit: Parametry.main (Parametry:5)
main[1] locals
Method arguments:
args = { Prvni, program, v, ... }
Local variables:
i = 0
main[1] clear Parametry:5
Breakpoint cleared at Parametry: 5
main[1] cont
Parametry[0] = Prvni
Parametry[1] = program
Parametry[2] = v
Parametry[3] = Jave!
The application exited
|
|
D.6. Generßtor dokumentace
javadoc
Program javadoc slou╛φ k vytvo°enφ dokumentace k balφk∙m a t°φdßm.
Dokumentace je vygenerovßna formßtu HTML z dokumentaΦnφch komentß°∙ uveden²ch
ve zdrojov²ch textech. Program se spou╣tφ nßsledovn∞:
javadoc [ p°epφnaΦe ] [ balφk ] [ soubory ]
Pro ovlivn∞nφ b∞hu programu lze pou╛φt tyto p°epφnaΦe:
-classpath cesta - ovlivnφ cestu, kde budou vyhledßvßny
jednotlivΘ Φßsti balφk∙,
-d adresß° - p°esm∞ruje uklßdßnφ v²slednΘ dokumentace do
zadanΘho
adresß°e ,
-verbose - p°inutφ program, aby zobrazoval informace o v╣em co d∞lß,
-version - do dokumentace bude vlo╛ena informace o verzφch,
-author - do dokumentace bude vlo╛ena informace o autorech,
-noindex - nebude se generovat soubor AllNames.html,
-notree - nebude se generovat soubor tree.html(viz. dßle).
DokumentaΦnφ komentß°e (viz 6.2.) mohou obsahovat jakΘkoliv znaΦky
HTML formßtu (2) a specißlnφ dokumentaΦnφ znaΦky. DokumentaΦnφ znaΦka musφ b²t v╛dy
zapsßna na zaΦßtku °ßdku (m∙╛e ji p°edchßzet pouze symbol "*"). Mezi
nejpou╛φvan∞j╣φ pat°φ:
@see odkaz - zp∙sobφ vlo╛enφ textu "See Also:" s
odkazem
na jmΘno t°φdy nebo metody,
@version text - lze pou╛φt jen u t°φd, do dokumentace vlo╛φ text
"Version:" a zadan² text,
@author text - rovn∞╛ lze pou╛φt jen u t°φd pro vlo╛enφ textu
"Author:" a jmΘna autora,
@param jmΘnoParametru popis - lze pou╛φt jen u metod pro
dokumentaci jejich parametr∙,
@return popis - rovn∞╛ lze pou╛φt jen u metod a to pro dokumentaci
nßvratovΘ hodnoty,
@exception ·plnΘJmΘnoT°φdyNeboVyjφmky popis - slou╛φ pro
popis v²jimek, kterΘ mohou vyvolat jednotlivΘ metody,
@deprecated text - vlo╛φ do textu varovßnφ, ╛e t°φda
nebo metoda ji╛ nebude v budoucnu podporovanß.
Program javadoc generuje tyto soubory:
- AllNames.html
- - rejst°φk,
- packages.html
- - seznam v╣ech vytvo°en²ch balφk∙,
- tree.html
- - hierarchie pou╛it²ch objekt∙.
- t°φdaNeboRozhranφNeboBalφk.html
- - soubory vytvo°enΘ pro
ka╛dou t°φdu, ka╛dΘ rozhranφ a ka╛d² balφk.
Do vygenerovanΘ dokumentace se automaticky doplnφ odkazy na Java Core
API. Pou╛itφ dokumentaΦnφch znaΦek viz p°φklad A.1..
D.7. Disassembler javap
Program javap slou╛φ k v²pisu informacφ a assembleru bytovΘho k≤du
p°elo╛en²ch t°φd. V²pis lze ovlßdat t∞mito p°epφnaΦi:
-c - - disassembluj v²sledn² k≤d,
-h - - vytvo° hlaviΦkov² soubor pro jazyk C,
-l - - vypi╣ lokßlnφ prom∞nnΘ,
-p - - zobraz informace vΦetn∞ privßtnφch polφ a metod.
Priklad D.3. |
Disassemblovan² v²pis programu z p°φkladu 4.2.1. vypadß nßsledovn∞
(3) :
Compiled from Parametry.java
public synchronized class Parametry extends java.lang.Object
/* ACC_SUPER bit set */
{
public static void main(java.lang.String[]);
public Parametry();
}
Method void main(java.lang.String[])
0 aload_0
1 arraylength
2 ifle 53
5 iconst_0
6 istore_1
7 goto 46
10 getstatic #13
<Field java.io.PrintStream out>
13 new #7
<Class java.lang.StringBuffer>
16 dup
17 ldc #2
<String "Parametr[">
19 invokespecial #10
<Method java.lang.StringBuffer(java.lang.String)>
22 iload_1
23 invokevirtual #11
<Method java.lang.StringBuffer append(int)>
26 ldc #3 <String "] = ">
28 invokevirtual #12
<Method java.lang.StringBuffer append(java.lang.String)>
31 aload_0
32 iload_1
33 aaload
34 invokevirtual #12
<Method java.lang.StringBuffer append(java.lang.String)>
37 invokevirtual #15
<Method java.lang.String toString()>
40 invokevirtual #14
<Method void println(java.lang.String)>
43 iinc 1 1
46 iload_1
47 aload_0
48 arraylength
49 if_icmplt 10
52 return
53 getstatic #13
<Field java.io.PrintStream out>
56 ldc #1
<String "Nebyly zadany zadne parametry.">
58 invokevirtual #14
<Method void println(java.lang.String)>
61 return
Method Parametry()
0 aload_0
1 invokespecial #9
<Method java.lang.Object()>
4 return
|
|
D.8. Generßtor hlaviΦkov²ch
soubor∙ javah
Program javah slou╛φ pro vytvß°enφ hlaviΦkov²ch a zdrojov²ch soubor∙
jazyka C, kterΘ jsou pot°ebnΘ pro implementaci native metod.
D.9. ArchivaΦnφ program jar
Od verze JDK 1.1 Java ARchiver slou╛φ pro archivovßnφ soubor∙. Jeho kompresnφ algoritmus
je zalo╛en na stejnΘm principu jako ZIP. Syntaxe je:
jar [ p°epφnaΦe ] [ manifest ] archφv soubory
- c vytvo°φ nov² archiv,
- t vypφ╣e obsah archivu,
- f dal╣φ parametr bude jmΘno souboru,
- x soubor rozbalφ v╣echny soubory, kterΘ odpovφdajφ jmΘnu,
- v zp∙sobφ vypisovßnφ informacφ v pr∙b∞hu Φinnosti.
Priklad D.4. |
Rozbalenφ souboru CLASSES.ZIP se provede pomocφ:
jar xfv CLASSES.ZIP
|
|
D.10. Nßstroj pro digitßlnφ podpisy javakey
Od verze JDK 1.1 slou╛φ program javakey pro generovßnφ digitßlnφch
podpis∙ podle pro archφvy (.jar soubory) a sprßvu databßze entit, jejich klφΦ∙ a
digitßlnφch podpis∙. (4)
D.11. Konvertor native2ascii
Proto╛e nßstroje z JDK 1.1 pracujφ pouze se soubory formßtu Latin-1 eventußln∞
obsahujφcφmi UnicodovΘ sekvence \uxxxx, je od verze JDK 1.1
k dispozici konvertor native2ascii . Ten umo╛≥uje p°evody mezi
podporovan²m k≤dovßnφm Unicode Latin-1 a n∞kolika dal╣φmi (nap°. ISO
8859-2, Cp 1250). Parametry mohou b²t:
-reverse - - provede zp∞tnou konverzi do Unicode Latin-1,
-encoding - - udßvß k≤dovßnφ vstupnφho souboru (seznam
viz [JDK97]).
D.12. Programy pro podporu RMI
Od verze JDK 1.1 jsou k dispozici nßsledujφcφ programy pro podporu
distribuovan²ch aplikacφ za pou╛φtφ vzdßlenΘho volßnφ metod (Remote Method Invocation - RMI):
- rmic - RMI compiler generujφcφ zßstupce pro klientskou a serverovskou
Φßst vzdßlenΘho objektu,
- rmiregistry - registr pro publikovßnφ vzdßlen²ch objekt∙ na serveru,
- serialver - vracφ sΘriovΘ Φφslo zadanΘ t°φdy.
Podrobn² popis techniky RMI obsahuje [JDK97].
|