Hlavní navigace

Java na Linuxu, JDK

binary runner

V následujícím textu si uděláme přehled několika JDK běžně dostupných pro Linux - Sun JDK, IBM JDK, Kaffe a Blackdown JDK. Podíváme se na jejich obsah, specifika, licenční podmínky a na to, jak nastavit prostředí pro vývoj Java aplikací.

Sun Java 2 SDK

Java 2 SDK bude pravděpodobně to první, po čem sáhnete, když se rozhodnete programovat v Javě. V dané verzi jde obvykle o JDK, které je první k dispozici. Oficiální release je možno si stáhnout jako RPM i TGZ z java.sun.com, má přibližně 38 MB. Pokud jste registrováni v Java Developer Connection, máte možnost dostat se i k raným verzím v rámci tzv.Early Access. Registrovat se může každý zdarma.

Možná si kladete otázku, proč si musíte JDK stahovat z webu a není součástí vaší distribuce vypálené z webu. Ano, modří už vědí, neumožňuje to licence. Ta dovoluje šířit JDK pouze s programy, které přidávají zásadní funkcionalitu, neumožňuje společně s JDK distribuovat software nahrazující jeho části a další. To pochopitelně brání zahrnutí JDK do volně šiřitelných verzí distribucí Linuxu. Pokud máte komerční verzi distribuce, JDK v ní je (platí pro Red Hat Linux Professional, Mandrake Linux Standard Edition, SuSE Linux Standard Edition). Vám ostatním nezbude, než si Sun JDK stáhnout sami.

Pro většinu aplikací vystačíte s verzí Standard Edition (SE). Pokud instalujete ze staženého RPM, JDK se rozbalí do adresáře /usr/java a manuálové stránky umístí do /usr/local/man/. Součástí distribuce je i zdrojový kód tříd v souboru src.zip a některé Java Extensions – Java Secure Socket Extensions (JSSE) (soubor jsse.jar), Java Cryptography Extension (JCE) (jce.jar) a Java Plug-in (javaplugin.jar).

Pokud instalujeme aktuální verzi JDK 1.4, adresář s JDK se jmenuje j2sdk1.4. Pak se vyplatí doplnit si do .bash_profile nebo systémového /etc/profile řádky:

export JAVA_HOME="/usr/java/j2sdk1.4/"
PATH="$JAVA_HOME/bin":$PATH
BOOTSTRAP_CLASSPATH="$JAVA_HOME/jre/lib/rt.jar:\
$JAVA_HOME/jre/lib/jsse.jar:$JAVA_HOME/jre/lib/jce.jar"
EXTENSION_CLASSPATH="/usr/java/classes:/usr/share/java"
export CLASSPATH="."

Význam pojmů boostrap a extension classes, případně classpath, snad dostatečně osvětlil minulý díl. Přesunutí JDK na začátek cesty je trik, jak vyšachovat Kaffe (viz. dále), aniž by bylo potřeba ho odinstalovat.

IBM Java 2 SDK

V rámci IBM developerWorks je k dispozici další JDK pro Linux, IBM Java 2 SDK. Jeho výhodou oproti konkurenčním JDK je vyšší výkon, který potvrzují některé testy, zdají se tomu odpovídat i mé subjektivních zkušenosti. Je však zatím dostupné jen ve verzi 1.3, což může být pro někoho nevýhodou, zvlášť pokud si chce vyzkoušet nově zahrnutá API jako JAXP nebo JNDI. Stáhnout JDK si můžeteve formátu RPM (33 MB). Instaluje se do adresáře /opt/IBMJava2-xx, díky čemuž není problém ho používat souběžně s jinými JDK. Začátečníkům s Javou bude jistě sympatický nápad zahrnout do distribuce i řadu užitečných demonstračních programů.

Licence na první pohled vypadá, že snad umožňuje redistribuci JDK, pokud zachováte všechny doklady o vlastníkovi copyrightu, mluví však nejasně. Zato přiložené README se vyjadřuje naprosto jednoznačně a redistribuci neumožňuje.

Kaffe

Pokud patříte k zastáncům ideí GNU a máte rádi Javu, dejte si Kaffe. Bráno striktně dle definice Kaffe není Java, nemá totiž certifikaci od Sun Microsystems. Ono se není čemu divit – i kdyby nehrály roli peníze, pak množství nekompatibilit achyb přehlédnout bohužel nejde. Vývoj se však nezastavil, a tak se můžeme těšit na nové verze tohoto perspektivního softwarového balíku.

Díky své licenci bývá toto JDK běžnou součástí distribucí, Mandrake ho dokonce využívá ve svých wizardech pro konfigurace kdečeho (což je také důvod, proč ho běžný uživatel této distribuce nebude chtít odinstalovat). Potěšujícím rysem Kaffe je jeho vyšší rychlost oproti Sun JDK dosažená vlastní implementací JVM i tříd. Do budoucna se navíc rýsuje zajímavá možnost integrace s kompilátorem GCJ, která má umožnit kombinování předkompilovaného a za běhu kompilovaného kódu.

Blackdown JDK

Blackdown JDK je port Sun JDK na Linux a je založený na zdrojovém kódu licencovaném od Sun Microsystems v době, kdy tato firma s vydáním vlastního JDK pro Linux otálela. Uvolnění poslední verze 1.3.1 bylo oznámeno v září 2000 a na 1.4 se snad pracuje. Vzhledem k tomu, že licence Blackdown JDK je prakticky totožná s licencí Sun JDK, jsem z něj trochu rozpačitý, a protože s ním nemám osobní zkušenosti, nevidím zásadní výhodu v jeho využití. Tím mu nechci nijak ubírat na kvalitách, o nichž svědčí například ocenění JavaWorld Editor's Choice 2001 pro Blackdown JVM. Zmiňuji se o něm spíše ve snaze o větší objektivitu.

Takže shrnutí: Sun JDK, pokud chcete to nejnovější standardní JDK, IBM JDK pro výkon a Kaffe pro licenci, experimenty a potenciál do budoucna. Příště Jikes a GCJ.

Našli jste v článku chybu?