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