Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Java na Linuxu, úvod

Stále více aplikací se píše v Javě. Důvodů je více než jen nezávislost na operačním systému. Z těch hlavních jmenujme alespoň velký výběr aplikačních rozhraní a čistě objektový přístup podporující tvorbu aplikací z komponent (beans a enterprise beans). Pro zájemce o vývoj javových aplikací na Linuxu jsou určeny následující kapitoly popisující základních vývojové nástroje a jejich zprovoznění na Linuxu.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Java Development Kits (JDKs)

Java není konkrétní softwarový balík, jde o tři základní specifikace – Java Language Specification definuje jazyk, Java 2 Platform API Specification základní třídy a Java Virtual Machine Specification prostředí pro běh aplikací. Jejich kombinací dostáváme vývojové prostředí pro Java aplikace, tzv. Java Development Kit (JDK), obsahující zejména kompilátor, JVM a základní třídy. Pro Linux jsou dostupná JDK Sun Java 2 SDK, Kaffe a IBM Java 2 SDK. Co najdete v každém JDK:

  • knihovnu základních tříd, tzv. core classes
  • kompilátor javac a JVM java
  • debugger jdb
  • generátor dokumentace javadoc
  • manager Java archivů (JAR) jar a jarsigner na jejich podpisování

Technologie Javy

Vývojový cyklus javové aplikace je typicky následující:

  1. Vznikne zdrojový kód v jazyce Java. V každém souboru <class_name>.java je uložena definice třídy <class_name>.
  2. Kompilátor převede zdrojový kód na platformně nezávislý bytecod, který ukládá do souborů (*.class). Co soubor, to třída.
  3. Spustí se Java Virtual Machine (JVM), jako argument je mu předán název hlavní třídy. JVM natáhne třídy z patřičných adresářů (viz dále), pak podle jména třídy <class_name> otevře soubor <class_name>.class a hledá v něm metodu main. Pokud uspěje, začne interpretovat bytecod třídy.

Kompilátor i JVM hledá a načítá třídy v pořadí:

  1. boostrap/core classes – Třídy java.* a další tvořící oficiální jádro Javy. Archivy, které je obsahují, typicky rt.jar, jsou umístěny v adresáři JDK jre/lib.
  2. extension classes – Třídy javax.* a další rozšiřující jádro Javy přes Java Extension Framework. Jsou obvykle umístěny v adresáři JDK jre/lib/ext. Ve standardní distribuci to může být třeba Java Cryptography Extension (JCE)(do jádra zřejmě nezařazená, aby toho nezneužívali ti zlobiví teroristi) nebo Java Servlet API (pro „javová CGI“).
  3. user classes – Další třídy nevyužívající mechanismus Java extensions, jejich umístění určuje obsah proměnné CLASSPATH.

Interpretovaný kód je pochopitelně pomalejší než kód kompilovaný. Důvodem je režie interpretu a někdy i nedostatky v optimalizaci. To se vývojáři JVM snaží řešit pomocí techniky tzv. Just-In-Time kompilace, kdy se na požádání bytecod kompiluje do nativního kódu. Zrychlení je údajně deseti- až stonásobné, ovšem vzhledem k době překladu to není právě optimální pro krátce běžící aplikace. Zřejmě jakýmsi kompromisem je HotSpot od Sun Microsystems, kdy JVM monitoruje prováděný kód a optimalizuje často prováděné části, a to i v průběhu debugování.

Java Archive (JAR)

JAR (Java Archive) je platformně nezávislý formát pro archivaci souborů. Všechny Java extensions jsou distribuovány v JARech. Používá ZLIB kompresi ZIPu, a aby se to nepletlo, syntax utility jar se dost podobá taru. Od verze JDK 1.3 může JAR pro rychlejší přístup ke svému obsahu mít i JarIndex, informace o obsahu adresářů je pak uložena v jednoduchém textovém souboru INDEX.LIST v adresáři META-INF nalézajícím se v kořeni JARu. Index v JARu vytvoříte příkazem  jar -i <file>.jar.

Příště si povíme něco o jednotlivých JDK.

Školení: Linux – Firemní server

Na třídenním školení se naučíte nainstalovat a spravovat kompletní linuxový server do Vaší firmy se všemi základními službami, které potřebujete pro provoz Vaší sítě, firemních emailů a webových stránek.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,49

Přehled názorů

:)
Jirka Stepan 23. 5. 2002 08:20
Nový
└ 
Re: :)
Tomas 23. 5. 2002 12:57
Nový
Diakritika
Jan Němec 23. 5. 2002 08:39
Nový
└ 
mandrake a jre
pavel 23. 5. 2002 17:44
Nový
Blackdown JDK
Jiri Maly 23. 5. 2002 09:17
Nový
├ 
Re: Blackdown JDK
Jan Němec 23. 5. 2002 09:45
Nový
└ 
Re: Blackdown JDK
Radek 29. 5. 2002 11:29
Nový
Chvalozpev
Petr Duchon 23. 5. 2002 12:20
Nový
Jen tak dale
Paces 23. 5. 2002 12:33
Nový
└ 
Re: Jen tak dale
emdot 23. 5. 2002 13:53
Nový
delka clanku
Deep Blue 23. 5. 2002 14:20
Nový
Java a VIM
emdot 23. 5. 2002 14:40
Nový
TAKHLE VYMASTENEJ CLANEK BYCH TU NECEKAL
si delate prdel, ne? 23. 5. 2002 14:40
Nový
Spousteni Java aplikaci na ruznych platformach
DuxForD 23. 5. 2002 15:00
Nový
├ 
Re: Spousteni Java aplikaci na ruznych platformach
Martin Vobr 23. 5. 2002 16:56
Nový
│
└ 
Re: Spousteni Java aplikaci na ruznych platformach
Jiri Mlady 26. 5. 2002 17:36
Nový
└ 
Re: Spousteni Java aplikaci na ruznych platformach
Leos Literak 24. 5. 2002 08:05
Nový
Java, Apache a servlety
ondrej 23. 5. 2002 17:25
Nový
├ 
Re: Java, Apache a servlety
ludek 23. 5. 2002 21:08
Nový
└ 
Re: Java, Apache a servlety
Leos Literak 24. 5. 2002 08:07
Nový
Stále více aplikací se píše v Javě?
Jenda 24. 5. 2002 01:20
Nový
├ 
Re: Stále více aplikací se píše v Javě?
Leos Literak 24. 5. 2002 08:15
Nový
│
├ 
Re: Stále více aplikací se píše v Javě?
karci 24. 5. 2002 13:05
Nový
│
└ 
Re: Stále více aplikací se píše v Javě?
Milan Roubal 26. 5. 2002 12:06
Nový
│
 
└ 
Re: Stale vice aplikaci se pise v Jave?
Leos Literak 28. 5. 2002 16:48
Nový
└ 
Re: Stále více aplikací se píše v Javě?
sk 24. 5. 2002 10:30
Nový
 
└ 
Re: Stale vice aplikaci se pise v Jave?
Leos Literak 28. 5. 2002 16:52
Nový
ciste objektovy jazyk
M.Burda 28. 5. 2002 16:05
Nový
└ 
Re: ciste objektovy jazyk
miro 19. 3. 2007 09:03
Nový
LED Klávesnice v javě
Harvie 17. 6. 2006 20:17
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem