Dione
Z. KotalaP. Toman: Java
Predchozi (Obsah) Dalsi

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].


  • (1) Program musφ b²t p°elo╛en s volbou -g.
  • (2) NedoporuΦuje se v╣ak pou╛φvat strukturßlnφ znaΦky (<HR>, <H1>, ...), kterΘ by zhor╣ily Φitelnost dokumentu.
  • (3) Z d∙vodu sazby je v²pis p°eformßtovßn.
  • (4) Bohu╛el internetovΘ prohlφ╛eΦe jako nap°φklad Netscape Navigator nebo Microsoft Internet Explorer "neuznßvajφ" podpisy provedenΘ tφmto nßstrojem. Vφce informacφ lze nalΘzt na [WWW2] a [WWW13].

Predchozi
Converted by Selathco v0.9 on 25.09.1999 19:46
Dalsi