Apa itu JRE? Pengenalan Alam Sekitar Java Runtime

Bersama-sama, Java Development Kit (JDK), Java Virtual Machine (JVM), dan Java Runtime Environment (JRE) membentuk trifecta komponen platform Java yang kuat untuk mengembangkan dan menjalankan aplikasi Java. Saya sebelum ini memperkenalkan JDK dan JVM. Dalam tutorial ringkas ini, anda akan belajar mengenai JRE, yang merupakan persekitaran waktu operasi untuk Java.

Secara praktikal, persekitaran runtime adalah perisian yang direka untuk menjalankan perisian lain. Sebagai lingkungan waktu proses untuk Java, JRE berisi perpustakaan kelas Java, pemuat kelas Java, dan Mesin Virtual Java. Dalam sistem ini:

  • The loader kelas bertanggungjawab betul memuatkan kelas dan menghubungkan mereka dengan teras perpustakaan kelas Java.
  • The JVM bertanggungjawab untuk memastikan aplikasi Java mempunyai sumber yang diperlukan untuk menjalankan dan melaksanakan dengan baik dalam peranti anda atau persekitaran awan.
  • The JRE terutamanya bekas bagi komponen lain, dan bertanggungjawab mendalangi aktiviti mereka.

Kami akan menggali lebih mendalam bagaimana komponen ini berfungsi bersama di bahagian-bahagian berikut.

Memasang JDK, JRE, dan JVM

Dari perspektif pemasangan, bila-bila masa anda memuat turun JDK, ia akan merangkumi JRE yang serasi dengan versi, dan JRE akan memasukkan JVM lalai. Anda juga boleh memuat turun JRE secara berasingan dari JDK, dan anda boleh memilih dari pelbagai JVM. Lalai berfungsi dengan baik untuk kebanyakan pelaksanaan, terutamanya ketika anda memulakan dengan Java.

Apakah persekitaran runtime?

Program perisian perlu dijalankan, dan untuk melakukannya memerlukan lingkungan untuk dijalankan. Persekitaran waktu proses memuat fail kelas dan memastikan ada akses ke memori dan sumber daya sistem lain untuk menjalankannya. Pada masa lalu, kebanyakan perisian menggunakan sistem operasi (OS) sebagai persekitaran waktu operasinya. Program ini berjalan di dalam komputer apa pun yang digunakan, tetapi bergantung pada tetapan sistem operasi untuk akses sumber. Sumber dalam kes ini adalah seperti memori dan fail program dan pergantungan. Java Runtime Environment mengubah semua itu, setidaknya untuk program Java.

WORA untuk Java

Ketika pertama kali diperkenalkan, prinsip "tulis sekali, jalankan di mana saja" Java dianggap revolusioner, tetapi hari ini telah diadopsi sebagai norma untuk kebanyakan sistem perisian.

Persekitaran Java Runtime

Kita boleh melihat perisian sebagai rangkaian lapisan yang berada di atas perkakasan sistem. Setiap lapisan menyediakan perkhidmatan yang akan digunakan (dan diperlukan) oleh lapisan di atasnya. Java Runtime Environment adalah lapisan perangkat lunak yang berjalan di atas sistem operasi komputer, memberikan layanan tambahan khusus untuk Java.

JRE melancarkan kepelbagaian sistem operasi, memastikan bahawa program Java dapat dijalankan pada hampir semua OS tanpa pengubahsuaian. Ia juga menyediakan perkhidmatan tambah nilai. Pengurusan memori automatik adalah salah satu perkhidmatan terpenting JRE, memastikan bahawa pengaturcara tidak perlu mengendalikan peruntukan dan pengagihan semula memori secara manual.

Ringkasnya, JRE adalah sejenis meta-OS untuk program Java. Ini adalah contoh klasik abstraksi , mengasingkan sistem operasi yang mendasari menjadi platform yang konsisten untuk menjalankan aplikasi Java.

Bagaimana JRE berfungsi dengan JVM

Java Virtual Machine adalah sistem perisian berjalan yang bertanggungjawab untuk melaksanakan program Java secara langsung. JRE adalah sistem on-disk yang mengambil kod Java anda, menggabungkannya dengan perpustakaan yang diperlukan, dan memulakan JVM untuk melaksanakannya.

JRE mengandungi perpustakaan dan perisian yang perlu dijalankan oleh program Java anda. Sebagai contoh, pemuat kelas Java adalah sebahagian dari Java Runtime Environment. Perisian penting ini memuatkan kod Java yang disusun ke dalam memori dan menghubungkan kod tersebut ke perpustakaan kelas Java yang sesuai.

Dalam paparan berlapis yang baru saya jelaskan, JVM dibuat oleh JRE. Dari perspektif pakej, JRE mengandungi JVM, seperti yang ditunjukkan oleh Rajah 1.

Matthew Tyson

Memasang dan menggunakan JRE

Walaupun terdapat sisi konseptual untuk JRE, dalam praktik dunia nyata hanya perisian yang dipasang di komputer, yang bertujuan untuk menjalankan program Java anda. Sebagai pembangun, anda kebanyakan akan bekerjasama dengan JDK dan JVM, kerana itu adalah komponen platform yang anda gunakan untuk membangun dan menjalankan program Java anda. Sebagai pengguna aplikasi Java, anda akan lebih terlibat dengan JRE, yang membolehkan anda menjalankan program tersebut.

Dalam kebanyakan kes, komputer anda akan disertakan dengan Java, dan JRE akan disertakan dengan itu. Sekiranya anda perlu memasang atau menaik taraf secara manual, anda boleh memuat turun versi JRE semasa dari Oracle.

Versi JRE

Java Runtime Environment diperbarui untuk setiap versi baru Java, dan nomor versi sesuai dengan sistem versi platform Java, jadi misalnya JRE 1.8 menjalankan Java 8. Walaupun Anda memiliki berbagai paket JDK untuk dipilih (seperti Enterprise Edition atau Edisi Standard) yang tidak berlaku dengan JRE. Sebilangan besar komputer menjalankan JRE yang dikembangkan untuk Java SE, yang dapat menjalankan aplikasi Java tanpa mengira bagaimana ia dikembangkan. Sebilangan besar peranti mudah alih dilengkapi dengan JRE untuk Java ME, yang sudah dipasang sebelumnya pada peranti mudah alih dan tidak tersedia untuk dimuat turun.

Setelah JRE dipasang, anda boleh berinteraksi dengannya pada baris perintah dengan memasukkan  java -version, yang akan memberitahu anda versi apa yang dipasang. Pada sistem POSIX, anda sentiasa dapat memeriksa lokasi yang dipasang dengan which java.

JRE dalam devops

JRE tidak begitu ketara dalam peringkat pembangunan, di mana kebanyakannya hanya menjalankan program anda dalam OS atau IDE pilihan anda. JRE memainkan peranan yang sedikit lebih menonjol dalam pengurusan devops dan sistem kerana ia digunakan untuk pemantauan dan konfigurasi.

Pada dasarnya, JRE menyediakan "tombol" yang akan anda gunakan untuk mengkonfigurasi dan mengawal ciri-ciri aplikasi Java. Penggunaan memori adalah contoh utama, roti dan mentega pentadbiran sistem. Walaupun penggunaan memori selalu penting, sangat penting dalam konfigurasi awan, dan devops adalah teknologi berasaskan awan. Sekiranya anda bekerja di lingkungan devops, atau berminat untuk berpindah ke devops, ada baiknya anda memahami bagaimana memori Java berfungsi dan bagaimana ia dipantau di JRE.

Devops atau sysadmin?

Devops adalah istilah baru, tetapi ia menggambarkan sesuatu yang berlaku selama beberapa dekad, iaitu interoperabilitas antara pembangunan dan operasi. Dalam pengertian ini, devops hanyalah istilah yang lebih baru untuk apa yang disebut sebagai operasi atau pentadbiran sistem. Seperti sysadmin, aspek penting dari devops adalah mentadbir sistem yang diperlukan untuk melaksanakan perisian. Menguruskan JRE adalah bahagian pengurusan sistem yang menjalankan aplikasi Java.

Memori Java dan JRE

Memori Java terdiri daripada tiga komponen: timbunan, timbunan dan metaspace (yang sebelumnya disebut permgen).

  • Metaspace adalah tempat Java menyimpan maklumat program anda yang tidak berubah seperti definisi kelas.
  • Ruang timbunan adalah tempat Java menyimpan kandungan berubah.
  • Stack space adalah tempat penyimpanan fungsi Java dan rujukan pemboleh ubah.

Pengurusan memori di Java 8

Sehingga Java 8, metaspace dikenal sebagai permgen. Selain menjadi nama yang lebih keren, metaspace adalah perubahan yang signifikan terhadap bagaimana pemaju berinteraksi dengan ruang memori Java. Sebelum ini, anda akan menggunakan perintah java -XX:MaxPermSizeuntuk memantau ukuran ruang permgen. Dari Java 8 dan seterusnya, Java meningkatkan ukuran metaspace secara automatik untuk memenuhi kebutuhan meta program anda. Java 8 juga memperkenalkan bendera baru MaxMetaspaceSize, yang dapat digunakan untuk membatasi ukuran metaspace.

Pilihan memori lain, timbunan dan timbunan, tetap sama di Java 8.

Mengkonfigurasi ruang timbunan

Ruang timbunan adalah bahagian yang paling dinamik dari sistem memori Java. Anda dapat menggunakan -Xmsdan -Xmxbendera untuk memberitahu Java seberapa besar untuk memulai timbunan, dan seberapa besar untuk membiarkannya menjadi. Memahami cara menyesuaikan bendera ini untuk keperluan program tertentu adalah aspek penting dalam pengurusan memori di Jawa. Yang ideal adalah menjadikan timbunannya cukup besar untuk mendapatkan pengumpulan sampah yang paling berkesan. Maksudnya, anda mahu membiarkan memori yang mencukupi untuk membiarkan program berjalan, tetapi anda tidak mahu ia menjadi lebih besar daripada yang diperlukan.

Mengkonfigurasi ruang timbunan

Stack space adalah tempat panggilan fungsi dan rujukan pembolehubah diatur dalam barisan. Stack space adalah sumber ralat kedua paling terkenal dalam pengaturcaraan Java: pengecualian tumpukan limpahan (yang pertama adalah pengecualian penunjuk null). The timbunan limpahan pengecualian menunjukkan bahawa anda telah kehabisan ruang timbunan kerana terlalu banyak ia telah ditetapkan. Biasanya, anda akan mendapat timbunan limpahan apabila kaedah atau kaedah memanggil satu sama lain secara bulat, dengan demikian menumpukan bilangan panggilan fungsi yang semakin meningkat ke dalam timbunan.

Anda menggunakan -Xsssuis untuk mengkonfigurasi ukuran permulaan timbunan. Tumpukan kemudian tumbuh secara dinamik mengikut keperluan program.

Pemantauan aplikasi Java

Walaupun pemantauan aplikasi adalah fungsi dari JVM, JRE memberikan pilihan konfigurasi, yang merupakan garis dasar yang diperlukan untuk pemantauan. Berbagai alat tersedia untuk memantau aplikasi Java, dari klasik (seperti perintah Unix top) hingga penyelesaian pemantauan jarak jauh yang canggih seperti pemantauan infrastruktur Oracle.

Di antara pilihan ini terdapat profiler visual seperti VisualVM yang memungkinkan untuk memeriksa JVM yang sedang berjalan. Alat-alat ini membolehkan mengesan titik panas dan kebocoran memori, serta menonton penggunaan memori keseluruhan dalam sistem anda.

Kesimpulannya

Java Runtime Environment adalah program on-disk yang memuat aplikasi Java untuk dijalankan oleh JVM. JRE disertakan secara lalai ketika anda memuat turun Java Development Kit, dan setiap JRE menyertakan perpustakaan kelas inti Java, pemuat kelas Java, dan Mesin Virtual Java. Sangat berguna untuk memahami bagaimana JVM, JDK dan JRE berinteraksi, terutamanya untuk bekerja di persekitaran cloud dan devops. Dalam lingkungan ini, JRE berperanan lebih kuat dalam pemantauan dan konfigurasi daripada yang dilakukan dalam pengembangan aplikasi Java tradisional.

Kisah ini, "Apa itu JRE? Pengantar Java Runtime Environment" pada awalnya diterbitkan oleh JavaWorld.