![]() Specializovaný týdeník o výpočetní technice o Internetu (CW 40/97) Programování v jazyce JavaDavid Štrupl
Vážení čtenáři, vítám vás u seriálu, který se bude zabývat programováním v Javě. V jeho průběhu byste se měli seznámit s jeho hlavními principy. Seriál předpokládá jisté základní znalosti programování, nejlépe v jazycích C, C++ nebo Pascalu. Protože bude pojednávat zejména o programování v jazyce Java, je určen hlavně těm, kteří hledají stručný přehled všeho, co lze pomocí Javy vytvořit. Rozsah našeho seriálu nedovoluje příliš podrobné vysvětlování základních pojmů -- budeme se proto občas dovolávat na již existující znalost programování a mlčky předpokládáme znalost takových pojmů, jako jsou komentář, identifikátor, typ, rozsah platnosti apod. Nicméně ani v případě, že jste zatím s programováním nepřišli příliš do styku, si nemusíte zoufat. Seriál bude doplňován kratšími články o praktickém použití Javy a JavaScriptu pro vylepšení vašich WWW stránek. Tato část se přitom nebude vázat na hlavní seriál a jeho každá část bude obsahovat relativně samostatnou kapitolku s praktickým návodem k použití.
Úvod a základní pojmy Nejprve se samozřejmě seznámíme s tím, co vlastně Java je a kam si ji máme zařadit. Historie jazyka a prostředí začala na počátku 90. let, kdy James Gosling dostal ve firmě Sun za úkol vyvinout nový jazyk pro výrobky spotřební elektroniky. Původně se jeho projekt jmenoval Oak a neměl nic společného s Internetem. Kolem roku 1994 pak bylo rozhodnuto přenést jazyk z prostředí spotřební elektroniky do ostatních oblastí nasazení počítačů a zejména do Internetu. Jazyk byl přejmenován na dnešní jméno Java (horká káva) a po předvedení ve firmě Netscape bylo rozhodnuto zařadit Javu do prohlížeče Netscape Navigator verze 2.0. To se stalo skutečností v listopadu 1995 -- a od té doby se prostředí Javy stává stále populárnější nejen v oblasti prohlížečů, ale i jako samostatné prostředí pro spouštění aplikací. Firma Sun vyrábí počítače nazvané JavaStation, jejichž celý operační systém je založen na prostředí Javy. Současně s uvedením Javy přidala firma Netscape do svého prohlížeče i další produkt (tentokrát z vlastní dílny) -- JavaScript. Přestože jazyky Java a JavaScript mají společnou část jména, jedná se o dvě různé technologie, které v prohlížeči spolupracují -- dnes už nejen v Netscape Navigatoru, ale i v některých dalších (např. MS Internet Explorer). JavaScript je přitom skriptovací jazyk, jejž je možné vkládat přímo do zdrojového textu HTML stránky. Příkazy JavaScriptu jsou interpretovány přímo prohlížečem. Pomocí JavaScriptu lze přitom oživit jinak statickou HTML stránku přidáním reakce na některé události. Na rozdíl od JavaScriptu je zdrojový kód napsaný v jazyce Java nejprve přeložen do spustitelného mezikódu (bytecode) -- viz obrázek Cesta Java kódu.
Bytecode je možné spustit pomocí vhodného runtime prostředí, které se nazývá Java Virtual Machine. Toto prostředí může být součástí prohlížeče nebo je možné jej získat samostatně (např. jako tzv. Java Runtime Environment -- JRE) nebo jako součást vývojového prostředí (např. JDK -- Java Development Kit). Přeložený mezikód je možné na cílové platformě buď interpretovat, nebo je možné jej v rámci zavádění do systému ještě po částech přeložit do spustitelného formátu na cílový procesor -- druhá varianta spouštění se někdy nazývá Just In Time kompilátor (JIT). Mezi hlavní výhody programů napsaných v jazyce Java patří jejich velká přenositelnost mezi jednotlivými operačními systémy a hardwarovými platformami. Jednou přeložený program lze pomocí příslušného JVM spustit prakticky na libovolném počítači (Sun, Windows 95/NT, HP-UX, Irix, Linux...). Nejjednodušší a základní vývojové prostředí (JDK) je možné získat zdarma od firmy Sun. Nyní je aktuální verze JDK 1.1. Prostředí JDK je složeno z několika samostatných programů, které se používají z konzole -- v prostředí Windows z MS-DOS promptu. Samozřejmě, že profesionální vývojová prostředí mají podobu, na kterou jsme zvyklí i u jiných jazyků -- jedná se o integrovaná vývojová prostředí (IDE). My si budeme většinu postupů ukazovat na JDK, protože toto prostředí je základní a všechna IDE musí mít vždy alespoň jeho funkce. Dále popisované postupy se v každém jednotlivém prostředí vyvolají odlišným způsobem, ale bývá zvykem, že distribuce IDE obsahuje i řádkové nástroje z JDK. Profesionální vývojové prostředí pro vývoj v Javě je možné získat např. od firem Sun, Borland, Symantec, Sybase, IBM, Microsoft a některých dalších. Také je možné použít jedno z sharewarových rozšíření JDK, např. české Xelfi. A jakmile máme vývojové prostředí, můžeme se směle pustit do psaní programů.
První aplikace Podívejme se, jak je možné napsat nejjednodušší aplikaci v jazyce Java. Chceme-li použít klasický příklad, napíšeme program, který pouze vypíše na standardní výstup (konzoli) slova "Hello World" -- nazdar světe.
public class HelloWorld { Překlad ze souboru HelloWorld.java provedeme pomocí programu javac (ve Windows javac.exe): javac HelloWorld.java. Jako výsledek překladu vznikne soubor HelloWorld.class. Soubory s příponou class obsahují přeložený bytecode. Vlastní spuštění provedeme pomocí programu java (java.exe): java HelloWorld. Pokud se vše povedlo, provede program vypsání slov Hello World a skončí. Takto vytvořenou aplikaci lze spustit pomocí programu java, ale nelze ji spustit pomocí prohlížeče. Pro spuštění v prohlížeči musíme vytvořit speciální druh javové aplikace: tzv. applet.
První applet Applet je program napsaný v Javě, který obsahuje vazby umožňující prohlížeči nahrát jej jako součást WWW stránky a spustit na klientském počítači. Nejjednodušší applet, který si můžeme představit, bude opět varianta na téma Hello World:
import java.applet.*;
<applet code=HelloWorldApplet.class width=100 height=100> Pokud nechceme při testování programů používat WWW prohlížeč, máme k dispozici program appletviewer, který je součástí vývojového prostředí. Tento program umožňuje prohlížet applety vložené do HTML stránek -- spouštíme ho tedy s parametrem, který určuje jméno HTML souboru obsahující požadovaný applet. V integrovaných prostředích lze většinou applet spustit podobně jako samostatnou aplikaci -- je tedy třeba dávat pozor, když budeme chtít applet spustit mimo naše vývojové prostředí, abychom měli všechny soubory na příslušném místě (nejlépe ve stejném adresáři).
Applet na vlastní stránce Chceme-li na vlastní stránce použít applet, který vytvořil někdo jiný, máme v zásadě dvě možnosti. První možností je, že autor zveřejní příslušný zdrojový kód. V tomto případě musíme, podobně jako v předchozím příkladu, applet nejprve přeložit a výsledné class soubory uložit do stejného adresáře jako je HTML stránka, ze které bude applet prohlížen. Druhou (častější) možností je, že applety se distribuují v již přeložené formě. Potom je pouze potřeba umístit dodané class soubory na správné místo a vyrobit na ně odkaz v HTML dokumentu. V dokumentaci k appletu musí být řečeno, která třída se má použít na WWW stránce. Některé applety mohou používat parametry předané z HTML. U každého parametru musí být zadáno jeho jméno a hodnota:
<applet code=HelloWorldApplet.class Jména parametrů v povolené hodnoty musí být uvedeny v dokumentaci k appletu. Pokud nezadáme nějaký parametr, applet nám může vypsat chybu na Java consoli.
Systém souborů javové aplikace Program, který napíšete, bude přeložen do souboru s příponou class. V každém takovém souboru je přeložen kód jedné třídy, ale typický program se neskládá z jedné třídy. Výsledek překladu ze souboru s příponou java může tedy být větší množství class souborů. Class soubory jsou organizovány do tzv. balíků (packages). Každý balík je uložen v jednom adresáři. Balíky mohou obsahovat další balíky, tj. vznikne hierarchická struktura balíků odpovídající adresářové struktuře, ve které budou uloženy class soubory. Standardní knihovny dodávané jako součást prostředí jsou rovněž rozděleny na jednotlivé balíky. Adresář, ve kterém se mají hledat class soubory a případné další balíky (podadresáře), může být v prostředí určen proměnnou CLASSPATH. Tato proměnná může obsahovat více adresářů, ve kterých JVM bude hledat kód. Pokud není nastavená proměnná CLASSPATH, můžeme požadovaný adresář zadat jako parametr při spouštění programu java:
java -classpath c:\java\classes:. P.class
Pro oddělování jednotlivých položek v classpath se používá v prostředí Unixu znak : a v prostředí Windows znak ;. Pokud není uvedena ani jedna cesta k souborům ze standardních knihoven, prostředí se je pokusí najít v adresáři určeném proměnnou JAVA_HOME nebo podle místa, odkud bylo spuštěno. Jestliže požadované soubory nenajde, vypíše chybu. Pokud používáme integrované prostředí, není většinou potřeba proměnné prostředí nastavovat. Pokud je však nastavíme, je třeba dávat pozor při spouštění některých prohlížečů -- zadání těchto proměnných jim může způsobit problémy pro spouštění Java appletů, protože nenajdou své standardní knihovny. Při hledání class souborů může interpret Javy kromě adresářů prohledávat i soubory s příponou .jar (java archive). Tyto soubory obsahují adresáře a soubory podobně jako např. soubory s příponou zip nebo tar -- původně byl použit formát zip (Netscape 3.0), v dalších verzích byl vytvořen nový formát jar. Při spouštění samostatných aplikací je možné v proměnné CLASSPATH nebo pomocí volby -classpath předané přímo programu java zadat cestu do souboru formátu jar nebo zip. Podívejme se na příklad spuštění programu uloženého v jar souboru:
java -classpath .;c:\mujJar.jar Program
Pokud chceme, aby programy z archivu jar nebo zip získával prohlížeč, můžeme to stanovit pomocí dalšího parametru příkazu applet ve WWW stránce:
<applet code=HelloWorldApplet.class
Možnost použít jar soubory je nová od verze JDK 1.1 -- tuto volbu tedy podporuje až prohlížeč Netscape od verze 4.0. Součástí JDK je také program na vytváření jar archivů -- jmenuje se jar a jeho použití je trochu podobné unixovému programu tar. Chceme-li např. vytvořit archiv ze všech class souborů v aktuálním adresáři, použijeme příkaz:
jar cf myjarfile *.class
Použití archivů zrychluje nahrávání class souborů ze sítě a umožňuje pracovat s celým Java programem jako s jedním souborem.
Internetové adresy, kde lze získat další informace o jazyce Java
http://java.sun.com | <<< | CW o Internetu | COMPUTERWORLD | IDG CZ homepage | |