Programavimas

Kas yra JRE? Įvadas į „Java Runtime“ aplinką

Kartu „Java Development Kit“ (JDK), „Java Virtual Machine“ (JVM) ir „Java Runtime Environment“ (JRE) sudaro galingą „Java“ platformos komponentų trifektą, skirtą „Java“ programoms kurti ir paleisti. Anksčiau esu pristatęs JDK ir JVM. Šioje greitoje pamokoje sužinosite apie JRE, kuri yra „Java“ vykdymo trukmės aplinka.

Praktiškai kalbant, a vykdymo trukmės aplinka yra programinė įranga, skirta paleisti kitą programinę įrangą. Kaip „Java“ vykdymo aplinką, JRE yra „Java“ klasės bibliotekos, „Java“ klasės krautuvas ir „Java“ virtualioji mašina. Šioje sistemoje:

  • klasės krautuvas yra atsakingas už teisingą klasių įkėlimą ir sujungimą su pagrindinėmis „Java“ klasių bibliotekomis.
  • JVM yra atsakingas už tai, kad „Java“ programos turėtų išteklių, reikalingų paleisti ir gerai veikti jūsų įrenginyje ar debesies aplinkoje.
  • JRE daugiausia yra konteineris tiems kitiems komponentams ir yra atsakingas už jų veiklos organizavimą.

Toliau pateiktuose skyriuose mes daug įsigilinsime į tai, kaip šie komponentai veikia kartu.

JDK, JRE ir JVM diegimas

Diegimo požiūriu, bet kada atsisiųsdami JDK, jame bus JRE suderinama su versija ir JRE numatytasis JVM. Taip pat galite atsisiųsti JRE atskirai iš JDK ir galite rinktis iš įvairių JVM. Numatytieji parametrai tinka daugeliui diegimų, ypač kai pradedate naudotis „Java“.

Kas yra vykdymo trukmės aplinka?

Programinė įranga turi būti vykdoma ir tam reikia aplinkos, kad ji galėtų veikti. Vykdymo aplinka įkelia klasės failus ir užtikrina prieigą prie atminties ir kitų sistemos išteklių, kad juos paleistų. Anksčiau dauguma programinės įrangos kaip vykdymo trukmės aplinką naudojo operacinę sistemą (OS). Programa veikė bet kuriame kompiuteryje, kuriame ji buvo, bet prieigai prie išteklių rėmėsi operacinės sistemos nustatymais. Ištekliai šiuo atveju būtų tokie kaip atmintis ir programų failai bei priklausomybės. „Java Runtime Environment“ pakeitė visa tai, bent jau „Java“ programoms.

WORA, skirta „Java“

Kai jis buvo pirmą kartą pristatytas, „Java“ principas „rašyk vieną kartą, paleisk bet kur“ buvo laikomas revoliuciniu, tačiau šiandien jis buvo priimtas kaip daugumos programinės įrangos sistemų norma.

„Java Runtime Environment“

Į programinę įrangą galime žiūrėti kaip į sluoksnių seriją, kuri yra ant sistemos aparatūros. Kiekvienas sluoksnis teikia paslaugas, kuriomis naudosis (ir reikalingos) virš jo esantys sluoksniai. „Java Runtime Environment“ yra programinės įrangos sluoksnis, veikiantis ant kompiuterio operacinės sistemos, teikiantis papildomas „Java“ paslaugas.

JRE išlygina operacinių sistemų įvairovę, užtikrindamas, kad „Java“ programos gali veikti praktiškai bet kurioje OS be modifikacijų. Jis taip pat teikia pridėtinės vertės paslaugas. Automatinis atminties valdymas yra viena iš svarbiausių JRE paslaugų, užtikrinanti, kad programuotojams nereikėtų rankiniu būdu valdyti atminties paskirstymo ir perskirstymo.

Trumpai tariant, JRE yra tam tikra „Java“ programų meta-OS. Tai klasikinis pavyzdys abstrakcija, suskaidydamas pagrindinę operacinę sistemą į nuoseklią „Java“ programų paleidimo platformą.

Kaip JRE veikia su JVM

„Java“ virtuali mašina yra veikianti programinės įrangos sistema, atsakinga už tiesioginių „Java“ programų vykdymą. JRE yra diske esanti sistema, kuri ima „Java“ kodą, sujungia jį su būtinomis bibliotekomis ir paleidžia JVM jį vykdyti.

JRE yra bibliotekos ir programinė įranga, kurią reikia paleisti jūsų „Java“ programoms. Pavyzdžiui, „Java“ klasės krautuvas yra „Java Runtime Environment“ dalis. Ši svarbi programinė įranga įkelia sukompiliuotą „Java“ kodą į atmintį ir sujungia kodą su atitinkamomis „Java“ klasės bibliotekomis.

Ką tik aprašytame sluoksniuotame vaizde JVM sukuria JRE. Žiūrint iš paketo perspektyvos, JRE yra JVM, kaip parodyta 1 paveiksle.

Matthew Tysonas

JRE diegimas ir naudojimas

Nors JRE yra ir konceptualioji pusė, realiame pasaulyje tai yra tiesiog kompiuteryje įdiegta programinė įranga, kurios tikslas yra paleisti „Java“ programas. Kaip kūrėjas, daugiausia dirbsite su JDK ir JVM, nes tai yra platformos komponentai, kuriuos naudojate kurdami ir vykdydami „Java“ programas. Kaip „Java“ programos vartotojas, jūs labiau dalyvautumėte JRE, kuris leidžia paleisti tas programas.

Daugeliu atvejų jūsų kompiuteryje bus įdiegta „Java“, o JRE bus įtrauktas į tai. Jei kada nors reikia rankiniu būdu įdiegti ar atnaujinti, dabartinę JRE versiją galite atsisiųsti iš „Oracle“.

JRE versijos

„Java Runtime Environment“ atnaujinama kiekvienai naujai „Java“ versijai, o jos versijų numeriai sutampa su „Java“ platformos versijų sistema, todėl, pavyzdžiui, JRE 1.8 veikia „Java 8“. Nors galite rinktis iš įvairių JDK paketų (pvz., „Enterprise Edition“) arba „Standard Edition“). Tai nėra JRE atvejis. Daugelyje kompiuterių veikia „Java SE“ sukurtas JRE, kuris gali paleisti bet kurią „Java“ programą, neatsižvelgiant į tai, kaip ji buvo sukurta. Daugelyje mobiliųjų įrenginių yra „Java ME“ skirtas JRE, kuris iš anksto įdiegtas mobiliajame įrenginyje ir kurio negalima atsisiųsti.

Įdiegę JRE, galite su juo bendrauti komandinėje eilutėje įvesdamijava -versija, kuris jums pasakys, kokia versija yra įdiegta. POSIX sistemose visada galite patikrinti įdiegtą vietą kuri java.

JRE „devops“

JRE nėra labai pastebimas kūrimo etape, kai jis dažniausiai tik paleidžia jūsų programas pasirinktoje OS arba IDE. JRE vaidina šiek tiek svarbesnį vaidmenį valdant ir administruojant sistemas, nes jis naudojamas stebėjimui ir konfigūravimui.

Iš esmės JRE pateikia „rankenėles“, kurias naudosite konfigūruodami ir valdydami „Java“ programos charakteristikas. Atminties naudojimas yra geriausias sistemos administravimo pavyzdys. Nors atminties naudojimas visada yra svarbus, jis yra gyvybiškai svarbus sudedamosiose debesų vietose, o „devops“ yra debesų technologija. Jei dirbate „devops“ aplinkoje arba norite išsišakoti į „devops“, verta suprasti, kaip veikia „Java“ atmintis ir kaip ji stebima JRE.

Devopsas ar sysadminas?

Devops yra naujas terminas, tačiau jis apibūdina tai, kas buvo teisinga dešimtmečius, tai yra kūrimo ir operacijų sąveika. Šia prasme, devopsas yra tik naujesnis terminas tam, kas anksčiau buvo vadinama operacijomis ar sistemų administravimu. Kaip ir „sysadmin“, svarbus „devops“ aspektas yra sistemų, reikalingų programinei įrangai vykdyti, administravimas. JRE valdymas yra sistemų, valdančių „Java“ programas, valdymo dalis.

„Java“ atmintis ir JRE

„Java“ atmintis susideda iš trijų komponentų: kaupo, kamino ir metapaskaitos (anksčiau vadintos permgen).

  • „Metaspace“ „Java“ saugo nepakitusią jūsų programos informaciją, pvz., klasės apibrėžimus.
  • Krūvos erdvė „Java“ saugo kintamą turinį.
  • Kamino erdvė čia „Java“ saugo funkcijų vykdymą ir kintamas nuorodas.

Atminties valdymas „Java 8“

Iki „Java 8“ metaspace buvo žinoma kaip „permgen“. Be to, kad „metaspace“ yra kur kas šaunesnis pavadinimas, tai reikšmingas pokytis, kaip kūrėjai sąveikauja su „Java“ atminties erdve. Anksčiau naudojote komandą java -XX: „MaxPermSize“ stebėti permgeno erdvės dydį. Pradedant „Java 8“, „Java“ automatiškai padidina metatalpės dydį, kad atitiktų jūsų programos meta poreikius. „Java 8“ taip pat pristatė naują vėliavą, „MaxMetaspaceSize“, kuri gali būti naudojama metaspace dydžiui apriboti.

Kitos atminties parinktys, kaupas ir kaupimas, „Java 8“ išlieka tos pačios.

Krūvos vietos konfigūravimas

Krūvos erdvė yra dinamiškiausia „Java“ atminties sistemos dalis. Galite naudoti -Xms ir -Xmx vėliavos, nurodančios „Java“, kokio dydžio pradėti kaupą ir kokio dydžio leisti jam tapti. Suprasti, kaip suderinti šias vėliavas pagal konkrečius programos poreikius, yra svarbus „Java“ atminties valdymo aspektas. Idealiausia yra padaryti krūvą pakankamai didelę, kad būtų galima surinkti efektyviausią šiukšlių dėžę. Tai yra, jūs norite turėti pakankamai atminties, kad programa veiktų, bet nenorite, kad ji būtų didesnė nei būtina.

Konfigūruoti kamino vietą

Kamino erdvė čia yra eilės funkcijų iškvietimai ir kintamos nuorodos. „Stack space“ yra antroji pagal žinomumą „Java“ programavimo klaidos šaltinis: kamino perpildymo išimtis (pirmoji yra „null pointer“ išimtis). kamino perpildymo išimtis rodo, kad trūksta vietos kaupti, nes per daug jos buvo rezervuota. Paprastai jūs gausite kamino perpildymą, kai metodas ar metodai skambina vienas kitam sukamaisiais būdais, tokiu būdu skirdami vis didesnį funkcijų iškvietimų skaičių.

Jūs naudojate -Xss perjungti konfigūruoti kamino pradinį dydį. Tada kaminas dinamiškai auga pagal programos poreikius.

„Java“ programų stebėjimas

Nors programų stebėjimas yra JVM funkcija, JRE pateikia konfigūravimo parinktis, kurios yra būtinas stebėjimo pagrindas. „Java“ programoms stebėti galima naudoti įvairius įrankius, pradedant klasika (pvz., „Unix“ komanda viršuje) iki sudėtingų nuotolinio stebėjimo sprendimų, tokių kaip „Oracle“ infrastruktūros stebėjimas.

Tarp šių parinkčių yra tokie vaizdiniai profiliai, kaip „VisualVM“, leidžiantys tikrinti veikiantį JVM. Šie įrankiai leidžia stebėti karštuosius taškus ir atminties nutekėjimą, taip pat stebėti bendrą atminties suvartojimą jūsų sistemoje.

Išvada

„Java Runtime Environment“ yra diske esanti programa, įkelianti „Java“ programas, kad JVM galėtų vykdyti. JRE yra numatytasis parametras, kai atsisiunčiate „Java Development Kit“, o kiekviename JRE yra pagrindinės „Java“ klasės bibliotekos, „Java“ klasės krautuvas ir „Java“ virtualioji mašina. Naudinga suprasti, kaip JVM, JDK ir JRE sąveikauja, ypač dirbant debesyse ir „devops“ aplinkoje. Šiose aplinkose JRE užima svarbesnį vaidmenį stebint ir konfigūruojant nei kuriant tradicines „Java“ programas.

Šią istoriją „Kas yra JRE? Įvadas į„ Java Runtime Environment ““ iš pradžių paskelbė „JavaWorld“.