Fix: Kesalahan terjadi selama inisialisasi VM tidak dapat menyediakan ruang yang cukup untuk tumpukan objek

Meskipun applet Java bukanlah teknologi web yang populer saat ini, ada banyak alasan untuk menyebarkan mesin virtual Java langsung di server Linux. Jika Anda mencoba menjalankan perintah java java secara langsung baik pada perangkat keras diskrit atau di dalam VM-nya sendiri, maka Anda mungkin mendapatkan kesalahan saat inisialisasi VM tidak dapat menyediakan ruang yang cukup untuk pesan tumpukan objek.

Ini mungkin terlihat agak aneh karena Anda lebih dari cukup memiliki RAM yang cukup untuk menjalankan perintah, tetapi itu sebagian besar karena permainan kata-kata tertentu dalam cara halaman memori fisik dan virtual digunakan. Menentukan beberapa ukuran yang relatif besar akan memungkinkan Anda untuk sepenuhnya mengabaikan pesan ini dan menjalankan perintah java seperti yang Anda lakukan dengan yang lain.

Metode 1: Menggunakan Opsi Baris Perintah

Jika Anda telah mencoba menjalankan java dan mendapatkan pesan ini, maka Anda mungkin sudah menjalankan perintah gratis untuk memastikan bahwa ada banyak persediaan memori untuk menjalankan program.

Perhatikan bahwa pada mesin uji kami, kami memiliki beberapa RAM fisik sebesar 2, 3 GB dan belum satu halaman pun memori virtual yang digunakan. Jika Anda menyadari bahwa Anda mengalami masalah memori, Anda pasti ingin menutup hal-hal lain yang telah Anda jalankan sebelum mencobanya lagi. Di sisi lain, mereka yang menemukan bahwa mereka memiliki banyak memori bebas dapat mencoba menentukan ukuran secara langsung.

Sebagai contoh, pada mesin kami, kami dapat menjalankan perintah sebagai java -Xms256m -Xmx512M dan itu berfungsi seperti yang diharapkan. Ini membatasi ukuran heap yang ingin dicoba oleh mesin virtual Java saat startup. Karena mesin virtual yang tidak terkendali secara hipotetis dapat melakukan hal-hal yang tidak biasa, itu mungkin membuang pesan kesalahan pada sistem yang bebas. Anda mungkin juga ingin bermain-main dengan kedua nilai tersebut sebelum Anda menemukan kombinasi yang tepat.

Ini bisa menjadi masalah terlepas dari apa yang Anda jalankan karena JVM tidak ada hubungannya dengan jenis VM yang mungkin Anda gunakan untuk menjalankan GNU / Linux.

TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini

Metode 2: Mengekspor Variabel untuk Membuat Perubahan Permanen

Ketika Anda menemukan nilai yang berhasil, Anda dapat mengekspornya untuk membuatnya permanen untuk sesi itu. Sebagai contoh, kami menggunakan ekspor _JAVA_OPTIONS = '- Xms256M -Xmx512M' dari prompt perintah bash dan itu memungkinkan kami untuk menjalankan perintah java dengan sendirinya tanpa opsi lain sampai kami logout dari server kami.

Perlu dijalankan lagi ketika kami masuk sesi lain, jadi Anda mungkin ingin menambahkannya ke skrip startup yang relevan jika Anda berencana untuk menggunakan perintah java cukup sering. Kami menambahkan baris ke file .bash_login kami dan tampaknya berfungsi setiap kali kami menggunakan perintah masuk tanpa harus menjalankannya lagi, meskipun Anda mungkin harus mencari lokasi lain untuk itu jika Anda bekerja dengan shell yang berbeda.

Anda mungkin telah memperhatikan bahwa hanya konfigurasi perangkat keras tertentu yang memicu pesan kesalahan ini. Itu karena biasanya terjadi pada mesin dengan banyak RAM fisik tetapi ulimits lebih rendah untuk cara menggunakannya. Java akan mencoba mengalokasikan blok besar hanya untuk diberitahu tidak bisa, yang diartikan sebagai kehabisan memori.

Metode 3: Mencetak Opsi Java Saat Ini

Jika Anda telah bekerja di baris perintah dan ingin referensi cepat untuk apa yang Anda tetapkan saat ini nilai _JAVA_OPTIONS, maka cukup jalankan echo $ _JAVA_OPTIONS dan itu akan segera mencetak nilai saat ini. Ini berguna untuk mengatasi masalah saat Anda mencoba mencari angka yang tepat untuk dicoba.

Perlu diingat bahwa sementara perbaikan ini seharusnya tidak mengharuskan orang lain bermain-main, Java akan membuang tidak dapat menyediakan ruang yang cukup untuk pesan tumpukan objek jika Anda menemukan diri Anda benar-benar pada akhir pendek dari memori virtual. Jika ini kasusnya, maka Anda ingin memeriksa kembali proses apa yang sedang berjalan dan mungkin me-restart server jika itu adalah opsi. Anda juga bisa menciptakan lebih banyak ruang swap, tetapi jika ini adalah masalah, biasanya lebih baik untuk mencoba dan memperbaikinya dengan cara lain.

Dalam kasus yang jarang terjadi bahwa pengaturan Anda tampaknya benar tetapi masih tidak berfungsi, pastikan Anda telah menginstal paket Java 64-bit karena harus kebal terhadap masalah ini. Persyaratan memori yang berdekatan hanya berlaku untuk versi 32-bit Java. Kami menemukan dalam beberapa kasus versi 64-bit mencoba untuk membuat mesin virtual 32-bit, jadi menentukan opsi -d64 pada baris perintah tetap untuk kami.

TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini

Facebook Twitter Google Plus Pinterest