Java Virtual Machine
Author
Albert FloresZnázornění architektury JVM.
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. +more 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.
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. +more 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ř. +more 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. +more 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ů. +more 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 . +morejar. 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ř.: * Ruby s JRuby * JavaScript s Rhino, Nashorn * Python s Jython * Groovy * Scala * Clojure * Kotlin
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
Související články
Java (programovací jazyk) * Virtuální stroj * Java (platforma)
Externí odkazy
[url=http://java. sun. +morecom/docs/books/jvms/]The Java Virtual Machine Specification[/url] * [url=http://java-virtual-machine. net/download. html]Java Virtual Machine Download Links[/url] Microsoft JVM (již nepodporováno) * [url=http://java. com/en/download/manual. jsp]JRE[/url] od Oracle - instalační soubory ke stažení pro všechny operační systémy.