Java Virtual Machine
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Java_virtual_machine_architecture.svg/400px-Java_virtual_machine_architecture.svg.png)
Java Virtual Machine (JVM) je sada počítačových programů a datových struktur, která využívá modul virtuálního stroje ke spuštění dalších počítačových programů a skriptů vytvořených v jazyce Java. Úkolem tohoto modulu je zpracovat pouze tzv. mezikód, který je v Javě označován jako Java bytecode. Oracle uvedl, že po celém světě existuje více než 5,5 miliard zařízení s JVM.[1]
Java Virtual Machine umí zpracovat mezikód (Java bytecode), který je obvykle vytvořen ze zdrojových kódů programovacího jazyka Java. Mezikód však může být vytvořen i z jiných jazyků než je Java. Příkladem zdrojového kódu, který může být přeložen do Java bytecodu je zdrojový kód jazyka Ada. Virtuální stroj JVM mohou využívat kromě Sun (firma vyvíjející programovací jazyk Java) i jiné společnosti, které se zabývají vývojem programovacích jazyků. JVM je sice zahrnutý v ochranné známce „Java“, ale může být vyvíjen i jinými společnostmi, pokud budou dodrženy podmínky a související smluvní závazky vydané společností Sun.
Java Virtual Machine je důležitý pro práci programů vytvořených v Javě. Díky tomu že je JVM k dispozici na mnoha platformách, je možné aplikaci v Javě vytvořit pouze jednou a spustit na kterékoliv z platforem, pro kterou je vyvinut JVM (např. Windows, Linux). JVM umožňuje automatické zpracování výjimek, díky kterým dokáže určit hlavní příčinu chyby nezávisle na zdrojovém kódu.
JVM je dodáván spolu se sadou standardních knihoven, které jsou nazývány Java API (Application Programming Interface). Application Programing Interface je systém, který umožňuje programu pracovat s funkcemi a třídami knihoven. JVM a API společně tvoří celek, který je poskytován jako Java Runtime Environment (JRE).
Spouštěcí prostředí
Aby mohla být aplikace spuštěna v JVM musí být zkompilována do standardizovaného a přenosného binárního formátu, který je obvykle ve formě .class souborů. Aplikace může být složena z mnoha různých druhů souborů, proto je možné pro snadnější distribuci rozsáhlých aplikací, zabalit více javovských tříd do jednoho souboru typu .jar.
Spustitelné jsou v JVM soubory s příponou .class nebo .jar. JVM je takzvaný interpret umožňující vykonávat zdrojový kód programu přeložený do mezikódu a zprostředkovat tak komunikaci s platformou na které je JVM spuštěn. V pozdějších verzích Javy nebyl mezikód přímo interpretován, ale před prvním svým spuštěním dynamicky zkompilován do strojového kódu daného počítače (tzv. Just-in-time kompilace, JIT). V současnosti se převážně používají technologie zvané HotSpot compiler, které mezikód zpočátku interpretují a na základě statistik získaných z této interpretace později provedou překlad často používaných částí do strojového kódu včetně dalších dynamických optimalizací (jako je např. inlining krátkých metod atp.).
Podpora dalších jazyků
Ačkoliv byl JVM zaměřen hlavně na spouštění programů vytvořených v Javě, nyní je možné v JVM spustit i programy vytvořené v jiných programovacích jazycích, jako např.:
Stávající JVM je vyvinut pro podporu jazyků se statickou typovou kontrolou a zatím nemá přímo zabudovanou podporu pro jazyky s dynamickou typovou kontrolou. V současné době má JVM pouze omezenou podporu dynamických kontrol tříd a metod.
Se zabudováním podpory pro jazyky s dynamickou typovou kontrolou se počítá v Javě 7.
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Java Virtual Machine na anglické Wikipedii.
- ↑ Learn About Java Technology [online]. Oracle [cit. 2013-09-02]. Dostupné online. (anglicky)
Související články
Externí odkazy
Obrázky, zvuky či videa k tématu Java Virtual Machine na Wikimedia Commons
- The Java Virtual Machine Specification
- Java Virtual Machine Download Links Microsoft JVM (již nepodporováno)
- JRE od Oracle - instalační soubory ke stažení pro všechny operační systémy
Média použitá na této stránce
Autor: Dcoetzee (File:Computer-blue.svg by OpenClipart, File:Phone-blackberry-bold.svg by User:Techtoucian), Licence: CC0
Diagram of the Java virtual machine (JVM) architecture. Source files in various languages are compiled into Java bytecode using compilers such as Javac and Jython. Any platform with a JVM can run the bytecode, by first passing it through a bytecode verifier and then either interpreting or compiling it to that platform's machine code on-the-fly with a JIT compiler. The Java APIs together with the JVM form the JRE (Java runtime environment). Both the JVM and APIs typically run as native code on top of the platform's operating system. Uses two public domain icons, File:Phone-blackberry-bold.svg and File:Computer-blue.svg.
Autor: sbmehta converted to SVG from Sun Microsystems AI version., Licence: BSD
Duke, the Java Mascot, in the waving pose. Duke images are now Free Graphics see duke:Project Home Page for more details.