Programmēšana

Kas ir JRE? Ievads Java izpildlaika vidē

Kopā Java izstrādes komplekts (JDK), Java virtuālā mašīna (JVM) un Java izpildlaika vide (JRE) veido spēcīgu Java platformas komponentu trifektu Java lietojumprogrammu izstrādei un darbināšanai. Iepriekš esmu iepazīstinājis ar JDK un JVM. Šajā ātrajā apmācībā uzzināsiet par JRE, kas ir Java izpildlaika vide.

Praktiski runājot, a izpildlaika vide ir programmatūras daļa, kas paredzēta citas programmatūras darbināšanai. Kā Java izpildlaika vide JRE satur Java klases bibliotēkas, Java klases ielādētāju un Java virtuālo mašīnu. Šajā sistēmā:

  • The klases iekrāvējs ir atbildīgs par pareizu klašu ielādi un savienošanu ar Java klases galvenajām bibliotēkām.
  • The JVM ir atbildīgs par to, lai Java lietojumprogrammām būtu nepieciešamie resursi, lai palaistu un darbotos labi jūsu ierīcē vai mākoņa vidē.
  • The JRE galvenokārt ir konteiners šīm pārējām sastāvdaļām un ir atbildīgs par viņu darbību organizēšanu.

Turpmākajās sadaļās mēs daudz dziļāk izpētīsim, kā šie komponenti darbojas kopā.

JDK, JRE un JVM instalēšana

No instalācijas viedokļa jebkurā laikā, kad lejupielādējat JDK, tajā būs iekļauts ar versiju saderīgs JRE un tajā būs arī noklusējuma JVM. Jūs varat arī lejupielādēt JRE atsevišķi no JDK, un jūs varat izvēlēties kādu no dažādiem JVM. Noklusējumi darbojas labi lielākajā daļā ieviešanas gadījumu, it īpaši, ja sākat darbu ar Java.

Kas ir izpildlaika vide?

Programmatūras programmai ir jāizpilda, un, lai to izdarītu, tai ir nepieciešama vide, lai palaistu. Runtime vide ielādē klases failus un nodrošina piekļuvi atmiņai un citiem sistēmas resursiem, lai tos palaistu. Agrāk lielākā daļa programmatūras kā izpildlaika vidi izmantoja operētājsistēmu (OS). Programma darbojās neatkarīgi no datora, kurā tā bija, bet piekļuvei resursiem paļāvās uz operētājsistēmas iestatījumiem. Resursi šajā gadījumā būtu tādas lietas kā atmiņa un programmu faili un atkarības. Java Runtime Environment visu to mainīja, vismaz Java programmām.

WORA Java

Kad tas pirmo reizi tika ieviests, Java princips "rakstīt vienreiz, palaist jebkur" tika uzskatīts par revolucionāru, taču šodien tas ir pieņemts kā norma lielākajai daļai programmatūras sistēmu.

Java izpildlaika vide

Mēs varam uzlūkot programmatūru kā virknes slāņu, kas atrodas sistēmas aparatūras augšpusē. Katrs slānis nodrošina pakalpojumus, kurus izmantos (un nepieciešami) virs tā esošie slāņi. Java Runtime Environment ir programmatūras slānis, kas darbojas virs datora operētājsistēmas, nodrošinot papildu pakalpojumus, kas raksturīgi Java.

JRE izlīdzina operētājsistēmu daudzveidību, nodrošinot, ka Java programmas bez izmaiņām var darboties praktiski jebkurā OS. Tas nodrošina arī pievienotās vērtības pakalpojumus. Automātiskā atmiņas pārvaldība ir viens no svarīgākajiem JRE pakalpojumiem, nodrošinot, ka programmētājiem nav manuāli jākontrolē atmiņas piešķiršana un pārdale.

Īsāk sakot, JRE ir sava veida meta-OS Java programmām. Tas ir klasisks piemērs abstrakcija, abstrahējot pamatā esošo operētājsistēmu konsekventā platformā Java lietojumprogrammu darbināšanai.

Kā JRE darbojas ar JVM

Java virtuālā mašīna ir darbojas programmatūras sistēma, kas ir atbildīga par dzīvo Java programmu izpildi. JRE ir diska sistēma, kas paņem jūsu Java kodu, apvieno to ar nepieciešamajām bibliotēkām un palaiž JVM tā izpildei.

JRE satur bibliotēkas un programmatūru, kas jādarbina jūsu Java programmām. Piemēram, Java klases ielādētājs ir daļa no Java Runtime Environment. Šī svarīgā programmatūras daļa ielādē apkopoto Java kodu atmiņā un savieno kodu ar atbilstošajām Java klases bibliotēkām.

Tikko aprakstītajā slāņainajā skatā JVM izveido JRE. No paketes viedokļa JRE satur JVM, kā parādīts 1. attēlā.

Metjū Taisons

JRE instalēšana un izmantošana

Lai gan JRE ir konceptuāla puse, reālajā pasaulē tā ir tikai datorā instalēta programmatūra, kuras mērķis ir palaist jūsu Java programmas. Kā izstrādātājs jūs galvenokārt strādājat ar JDK un JVM, jo tie ir platformas komponenti, kurus izmantojat, lai izstrādātu un palaistu Java programmas. Kā Java lietojumprogrammas lietotājs jūs būtu vairāk iesaistīts JRE, kas ļauj palaist šīs programmas.

Vairumā gadījumu jūsu datorā būs instalēta Java, un JRE tiks iekļauts tajā. Ja jums kādreiz ir nepieciešams manuāli instalēt vai jaunināt, pašreizējo JRE versiju varat lejupielādēt no Oracle.

JRE versijas

Java Runtime Environment tiek atjaunināta katrai jaunajai Java versijai, un tās versiju numuri sakrīt ar Java platformas versiju sistēmu, tāpēc, piemēram, JRE 1.8 darbojas Java 8. Lai gan jums ir dažādas JDK paketes, no kurām izvēlēties (piemēram, Enterprise Edition) vai Standard Edition), kas nav JRE gadījums. Lielākajā daļā datoru darbojas Java SE izstrādāts JRE, kas spēj palaist jebkuru Java lietojumprogrammu neatkarīgi no tā, kā tā tika izstrādāta. Lielākajai daļai mobilo ierīču ir Java ME JRE, kas ir iepriekš instalēts mobilajā ierīcē un nav pieejams lejupielādei.

Kad JRE ir instalēts, ar to varat mijiedarboties komandrindā, ievadotjava -versija, kas jums pateiks, kāda versija ir instalēta. POSIX sistēmās vienmēr varat pārbaudīt instalēto vietu kura java.

JRE devops

JRE nav ļoti pamanāms izstrādes stadijā, kur tas lielākoties vienkārši palaiž jūsu programmas izvēlētajā OS vai IDE. JRE ir nedaudz nozīmīgāka loma izstrādātāju un sistēmu administrēšanā, jo to izmanto uzraudzībai un konfigurēšanai.

Būtībā JRE nodrošina “pogas”, kuras izmantosiet, lai konfigurētu un kontrolētu Java lietojumprogrammas īpašības. Atmiņas izmantošana ir lielisks piemērs, maize un sviests sistēmu administrēšanā. Kaut arī atmiņas izmantošana vienmēr ir svarīga, tā ir būtiska mākoņu konfigurācijās, un devops ir mākoņa tehnoloģija. Ja jūs strādājat devops vidē vai vēlaties sazināties ar devops, ieteicams saprast, kā darbojas Java atmiņa un kā to uzrauga JRE.

Devops vai sysadmin?

Devops ir jauns termins, bet tas apraksta kaut ko, kas ir bijis taisnība gadu desmitiem ilgi, proti, attīstības un operāciju savietojamību. Šajā ziņā, devops ir tikai jaunāks termins tam, ko agrāk sauca par operācijām vai sistēmu administrēšanu. Tāpat kā sysadmin, svarīgs devops aspekts ir programmatūras izpildei nepieciešamo sistēmu administrēšana. JRE pārvaldība ir daļa no pārvaldības sistēmām, kas darbojas Java lietojumprogrammās.

Java atmiņa un JRE

Java atmiņa sastāv no trim komponentiem: kaudzes, kaudzes un metatelpas (ko iepriekš sauca par permgenu).

  • Metaspace ir vieta, kur Java saglabā jūsu programmas nemainīgo informāciju, piemēram, klases definīcijas.
  • Kaudzes telpa ir vieta, kur Java saglabā mainīgu saturu.
  • Krāvuma vieta ir vieta, kur Java saglabā funkciju izpildi un mainīgo atsauces.

Atmiņas pārvaldība Java 8

Līdz Java 8 metaspace bija pazīstama kā permgen. Papildus tam, ka metaspace ir daudz foršāks nosaukums, tas ir būtiskas izmaiņas, kā izstrādātāji mijiedarbojas ar Java atmiņas vietu. Iepriekš jūs izmantojāt komandu java -XX: MaxPermSize lai uzraudzītu permgenas vietas lielumu. Sākot ar Java 8, Java automātiski palielina metatelpas lielumu, lai pielāgotos jūsu programmas meta vajadzībām. Java 8 arī ieviesa jaunu karogu, MaxMetaspaceSize, kuru var izmantot, lai ierobežotu metatelpas lielumu.

Pārējās atmiņas opcijas, kaudze un kaudze, Java 8 paliek nemainīgas.

Kaudzes vietas konfigurēšana

Kaudzes telpa ir visdinamiskākā Java atmiņas sistēmas daļa. Jūs varat izmantot -Xms un -Xmx karodziņi, lai Java norādītu, cik liela ir kaudzes sākšana un cik liela, lai tā varētu kļūt. Izpratne par to, kā pielāgot šos karodziņus īpašām programmas vajadzībām, ir svarīgs Java atmiņas pārvaldības aspekts. Ideāls ir padarīt kaudzi pietiekami lielu, lai sasniegtu visefektīvāko atkritumu savākšanu. Tas ir, jūs vēlaties atļaut pietiekami daudz atmiņas, lai programma darbotos, taču nevēlaties, lai tā būtu lielāka nekā nepieciešams.

Konfigurē kaudzes vietu

Krāvuma vieta ir vieta, kur tiek izsaukti funkciju izsaukumi un mainīgo atsauces. Steka telpa ir otrās bēdīgākās kļūdas avots Java programmēšanā: kaudzes pārpildes izņēmums (pirmais ir nulles rādītāja izņēmums). The kaudzes pārpildes izņēmums norāda, ka jums ir beigusies vieta kaudzē, jo pārāk daudz tās ir rezervēts. Parasti jūs saņemsiet kaudzes pārpildi, kad metode vai metodes zvana viens otram apļveida veidā, tādējādi kaudzē veltot arvien lielāku skaitu funkciju izsaukumu.

Jūs izmantojat -Xss pārslēgties, lai konfigurētu kaudzes sākuma lielumu. Pēc tam kaudze dinamiski pieaug atbilstoši programmas vajadzībām.

Java lietojumprogrammu uzraudzība

Lai gan lietojumprogrammu pārraudzība ir JVM funkcija, JRE nodrošina konfigurācijas opcijas, kas ir nepieciešamā uzraudzība. Java lietojumprogrammu uzraudzībai ir pieejami dažādi instrumenti, sākot no klasikas (piemēram, Unix komanda tops) sarežģītiem attālās uzraudzības risinājumiem, piemēram, Oracle infrastruktūras uzraudzībai.

Starp šīm opcijām ir vizuālie profilētāji, piemēram, VisualVM, kas ļauj pārbaudīt darbojošos JVM. Šie rīki ļauj izsekot karstajiem punktiem un atmiņas noplūdēm, kā arī vērot kopējo atmiņas patēriņu jūsu sistēmā.

Secinājums

Java Runtime Environment ir diska programma, kas ielādē Java lietojumprogrammas JVM izpildei. JRE pēc noklusējuma tiek iekļauts, lejupielādējot Java izstrādes komplektu, un katrā JRE ir iekļautas galvenās Java klases bibliotēkas, Java klases ielādētājs un Java virtuālā mašīna. Ir noderīgi saprast, kā JVM, JDK un JRE mijiedarbojas, īpaši darbam mākoņu un devops vidēs. Šādās vidēs JRE ir jāuzņemas lielāka loma uzraudzībā un konfigurēšanā, nekā tas būtu tradicionālā Java lietojumprogrammu izstrādē.

Šo stāstu "Kas ir JRE? Ievads Java izpildlaika vidē" sākotnēji publicēja JavaWorld.