Programování

Co je to JRE? Úvod do prostředí Java Runtime Environment

Společně tvoří Java Development Kit (JDK), Java Virtual Machine (JVM) a Java Runtime Environment (JRE) silný trifecta komponent platformy Java pro vývoj a provoz aplikací Java. Předtím jsem představil JDK a JVM. V tomto rychlém kurzu se dozvíte o JRE, což je běhové prostředí pro Javu.

Prakticky vzato, a běhové prostředí je software, který je určen ke spouštění jiného softwaru. Jako běhové prostředí pro Javu obsahuje JRE knihovny tříd Java, zavaděč tříd Java a Java Virtual Machine. V tomto systému:

  • The zavaděč třídy je zodpovědný za správné načítání tříd a jejich propojení s hlavními knihovnami tříd Java.
  • The JVM zodpovídá za zajištění toho, aby aplikace Java měly zdroje, které potřebují pro běh a dobrý výkon ve vašem zařízení nebo cloudovém prostředí.
  • The JRE je hlavně kontejnerem pro tyto další součásti a odpovídá za organizaci jejich činností.

V následujících částech se budeme hlouběji zabývat tím, jak tyto komponenty spolupracují.

Instalace JDK, JRE a JVM

Z hlediska instalace, kdykoli si stáhnete JDK, bude obsahovat JRE kompatibilní s verzí a toto JRE bude obsahovat výchozí JVM. Můžete si také stáhnout JRE samostatně z JDK a můžete si vybrat z různých JVM. Výchozí nastavení fungují dobře pro většinu implementací, zvláště když začínáte s Javou.

Co je to běhové prostředí?

Softwarový program musí být spuštěn a k tomu potřebuje prostředí, ve kterém se bude spouštět. Běhové prostředí načítá soubory tříd a zajišťuje, že je k jejich přístupu přístup do paměti a dalších systémových prostředků. V minulosti většina softwaru používala jako běhové prostředí operační systém (OS). Program běžel uvnitř jakéhokoli počítače, na kterém byl, ale spoléhal se na nastavení operačního systému pro přístup k prostředkům. Zdroji v tomto případě by byly věci jako paměť a programové soubory a závislosti. Prostředí Java Runtime Environment to všechno změnilo, alespoň pro programy Java.

WORA pro Javu

Když byl poprvé představen, byl princip Java „write once, run anywhere“ považován za revoluční, ale dnes byl přijat jako norma pro většinu softwarových systémů.

Runtime prostředí Java

Na software se můžeme dívat jako na řadu vrstev, které jsou umístěny na vrcholu systémového hardwaru. Každá vrstva poskytuje služby, které budou použity (a požadovány) vrstvami nad ní. Prostředí Java Runtime Environment je softwarová vrstva, která běží nad operačním systémem počítače a poskytuje další služby specifické pro prostředí Java.

Prostředí JRE vyhlazuje rozmanitost operačních systémů a zajišťuje, že programy Java mohou běžet prakticky na jakémkoli operačním systému bez úprav. Poskytuje také služby s přidanou hodnotou. Automatická správa paměti je jednou z nejdůležitějších služeb JRE, která zajišťuje, že programátoři nemusí ručně kontrolovat alokaci a realokaci paměti.

Stručně řečeno, JRE je druh meta-OS pro programy Java. Je to klasický příklad abstrakce, abstrahující základní operační systém do konzistentní platformy pro spouštění aplikací Java.

Jak JRE funguje s JVM

Java Virtual Machine je běžící softwarový systém odpovědný za provádění živých programů Java. JRE je systém na disku, který převezme váš kód Java, zkombinuje ho s potřebnými knihovnami a spustí JVM k jeho provedení.

Prostředí JRE obsahuje knihovny a software, které vaše programy Java potřebují ke spuštění. Jako příklad je zavaděč tříd Java součástí prostředí Java Runtime Environment. Tato důležitá část softwaru načte zkompilovaný kód Java do paměti a připojí jej k příslušným knihovnám tříd Java.

Ve vrstveném pohledu, který jsem právě popsal, je JVM vytvořeno JRE. Z pohledu balíčku JRE obsahuje JVM, jak ukazuje obrázek 1.

Matthew Tyson

Instalace a používání prostředí JRE

I když JRE má koncepční stránku, v praxi se jedná pouze o software nainstalovaný v počítači, jehož účelem je spouštět vaše Java programy. Jako vývojář budete většinou pracovat s JDK a JVM, protože to jsou komponenty platformy, které používáte k vývoji a spouštění svých programů Java. Jako uživatel aplikace Java byste se více zapojili do prostředí JRE, které vám umožňuje tyto programy spouštět.

Ve většině případů bude váš počítač dodán s nainstalovanou Javou a JRE bude součástí. Pokud někdy potřebujete ručně nainstalovat nebo upgradovat, můžete si stáhnout aktuální verzi JRE z Oracle.

JRE verze

Prostředí Java Runtime Environment je aktualizováno pro každou novou verzi prostředí Java a jeho čísla verzí jsou v souladu s verzním systémem platformy Java, takže například JRE 1.8 spouští prostředí Java 8. I když máte na výběr různé balíčky JDK (například Enterprise Edition nebo Standard Edition), což u JRE neplatí. Většina počítačů používá prostředí JRE vyvinuté pro prostředí Java SE, které dokáže spustit libovolnou aplikaci Java bez ohledu na to, jak byla vyvinuta. Většina mobilních zařízení je dodávána s prostředím JRE pro prostředí Java ME, které je předinstalováno v mobilním zařízení a není k dispozici ke stažení.

Jakmile je JRE nainstalováno, můžete s ním komunikovat na příkazovém řádku zadánímverze Java, který vám řekne, která verze je nainstalována. V systémech POSIX můžete vždy zkontrolovat nainstalované umístění pomocí která java.

JRE v devops

JRE není příliš patrné ve fázi vývoje, kdy většinou spouští pouze vaše programy v operačním systému nebo IDE podle vašeho výběru. JRE hraje o něco významnější roli ve správě devops a systémů, protože se používá pro monitorování a konfiguraci.

JRE v zásadě poskytuje „knoflíky“, které byste použili ke konfiguraci a ovládání charakteristik aplikace Java. Využití paměti je ukázkovým příkladem, chlebem a správou systémů. I když je využití paměti vždy důležité, v cloudových konfiguracích je to zásadní a devops je cloudová technologie. Pokud pracujete v prostředí devops nebo máte zájem se rozdělit na devops, je dobré pochopit, jak funguje paměť Java a jak je monitorována v JRE.

Devops nebo sysadmin?

Devops je nový pojem, ale popisuje něco, co platí po celá desetiletí, což je interoperabilita mezi vývojem a provozem. V tomto smyslu, devops je jen novější výraz pro to, co se dříve nazývalo provoz nebo správa systémů. Stejně jako sysadmin je důležitým aspektem devops správa systémů nezbytných k provádění softwaru. Správa prostředí JRE je součástí správy systémů, které spouštějí aplikace Java.

Paměť Java a JRE

Paměť Java se skládá ze tří komponent: haldy, zásobníku a metaspace (který byl dříve nazýván permgen).

  • Metaspace je místo, kde Java udržuje neměnné informace o vašem programu, jako jsou definice tříd.
  • Halda prostoru je místo, kde Java udržuje variabilní obsah.
  • Stohový prostor je místo, kde Java ukládá provádění funkcí a odkazy na proměnné.

Správa paměti v Javě 8

Až do prostředí Java 8 byl metaspace známý jako permgen. Kromě toho, že je mnohem chladnějším jménem, ​​je metaspace významnou změnou v interakci vývojářů s paměťovým prostorem Java. Dříve byste použili příkaz java -XX: MaxPermSize sledovat velikost permgenního prostoru. Od prostředí Java 8 vpřed, Java automaticky zvětšuje velikost metaspace tak, aby vyhovovala vašim meta-potřebám. Java 8 také představila novou vlajku, MaxMetaspaceSize, kterou lze použít k omezení velikosti metaspace.

Ostatní možnosti paměti, halda a zásobník, zůstávají v Javě 8 stejné.

Konfigurace haldy prostoru

Halda prostoru je nejdynamičtější součástí paměťového systému Java. Můžete použít -Xms a -Xmx příznaky, které říkají Javě, jak velká má začít haldu a jak velká, aby se mohla stát. Pochopení toho, jak vyladit tyto příznaky pro konkrétní potřeby programu, je důležitým aspektem správy paměti v Javě. Ideální je udělat hromadu dostatečně velkou, aby bylo dosaženo co nejefektivnějšího sběru odpadu. To znamená, že chcete povolit dostatek paměti pro spuštění programu, ale nechcete, aby byla větší než je nutné.

Konfigurace prostoru zásobníku

Zásobník prostoru je místo, kde jsou ve frontě volání funkcí a odkazy na proměnné. Prostor zásobníku je zdrojem druhé nejznámější chyby v programování Java: výjimka přetečení zásobníku (první je výjimka nulového ukazatele). The výjimka přetečení zásobníku označuje, že vám došlo místo v zásobníku, protože bylo rezervováno příliš mnoho. Obvykle dostanete přetečení zásobníku, když se metoda nebo metody navzájem volají kruhovým způsobem, čímž se do zásobníku věnuje stále rostoucí počet volání funkcí.

Používáte -Xss přepnutím nakonfigurujete počáteční velikost zásobníku. Zásobník pak dynamicky roste podle potřeb programu.

Monitorování Java aplikací

Přestože monitorování aplikací je funkcí JVM, JRE poskytuje možnosti konfigurace, které jsou nezbytným základem pro monitorování. K monitorování aplikací Java je k dispozici celá řada nástrojů, od klasiky (například příkaz Unix horní) sofistikovaným řešením vzdáleného monitorování, jako je monitorování infrastruktury Oracle.

Mezi těmito možnostmi jsou vizuální profily, jako je VisualVM, které umožňují kontrolu spuštěného JVM. Tyto nástroje umožňují sledování hotspotů a úniků paměti a také sledování celkové spotřeby paměti ve vašem systému.

Závěr

Prostředí Java Runtime Environment je program na disku, který načítá aplikace Java pro provádění JVM. Při stahování sady Java Development Kit je ve výchozím nastavení zahrnuto prostředí JRE a každé prostředí JRE obsahuje základní knihovny tříd Java, zavaděč tříd Java a virtuální počítač Java. Je užitečné pochopit, jak JVM, JDK a JRE interagují, zejména pro práci v cloudových a devopsových prostředích. V těchto prostředích zaujímá prostředí JRE při monitorování a konfiguraci silnější roli, než by tomu bylo při vývoji tradičních aplikací Java.

Tento příběh „Co je to JRE? Úvod do prostředí Java Runtime Environment“ původně publikoval JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found