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