Pertama-tama, aku memiliki sebuah kotak dengan 8gb ram, jadi saya ragu total memori adalah masalah. Aplikasi ini berjalan baik pada mesin dengan 6gb atau kurang.
Saya mencoba untuk memesan 3GB ruang menggunakan -Xmx3G di bawah "VM Argumen" dalam Menjalankan Konfigurasi di Eclipse.
Setiap kali saya mencoba untuk memesan lebih dari 1.500 mb, saya mendapatkan error ini: "Kesalahan terjadi selama inisialisasi VM; Bisa tidak memesan ruang yang cukup untuk objek tumpukan" menggunakan -Xmx3G
Apa yang terjadi di sini?
Berikut adalah cara untuk memperbaikinya:
Pergi Start->Control Panel->System->Maju(tab)->Variabel Lingkungan->System
Variables->New:
Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M
Variable name: Path
Variable value: ;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
Perubahan ini untuk anda tepat.
Ini adalah benar-benar tidak Gerhana-masalah tertentu; it's umum Jawa-di-Windows masalah. It's karena bagaimana JVM mengalokasikan memori pada Windows; itu bersikeras mengalokasikan bersebelahan sepotong memori, yang sering Windows bisa't memberikan, bahkan jika ada cukup terpisah potongan untuk memenuhi permintaan alokasi. Ada keperluan yang akan mencoba untuk membantu Windows "defrag" memori, yang akan, dalam teori, membantu situasi ini, tetapi saya've tidak benar-benar mencoba mereka dengan sungguh-sungguh agar bisa't berbicara untuk efektivitas mereka. Satu hal yang saya've mendengar kadang-kadang yang mungkin bisa membantu adalah untuk reboot Windows dan, sebelum memulai setiap aplikasi lain, meluncurkan aplikasi Java yang membutuhkan sebagian besar dari memori. Jika anda're beruntung, Windows won't telah terfragmentasi nya ruang memori yang belum dan Jawa akan mendapatkan bersebelahan blok yang meminta.
Di suatu tempat di interwebs ada penjelasan lebih teknis dan analisis masalah ini, tapi aku don't memiliki referensi yang berguna.
Aku menemukan ini, meskipun, yang terlihat membantu: https://stackoverflow.com/a/497757/639520
Pertama JRE dari 32bits dapat't menggunakan lebih ~1.5 Gb ram. Jadi jika anda ingin lebih, menggunakan 64bits JRE.
Kedua, Ketika baru JVM dimulai, jumlah ini satu -Xmx milik semua JVM yang sedang berjalan, dan memeriksa jika ada cukup memori yang tersisa pada sistem yang berjalan pada mereka sendiri -Xmx, jika tidak cukup maka terjadi kesalahan.
Saya menggunakan Liferay dengan Tomcat server dari eclipse IDE. Aku terjebak dengan kesalahan yang sama di klik di server start up. Klik ganda pada server dari eclipse. itu membuka Server Ikhtisar halaman. Diperbarui memori argumen dari -Xmx1024m -XX:MaxPermSize=256m ke -Xmx512m -XX:MaxPermSize=256m. Kemudian ia bekerja untuk saya.
Pastikan bahwa Gerhana adalah benar-benar berjalan JVM yang sama anda pikir itu's berjalan. Jika anda menggunakan java di browser web anda sebelumnya, anda mungkin memiliki versi 32-bit floating sekitar juga bahwa mungkin mengambil didahulukan jika diinstal atau diperbarui akhir-akhir ini.
Untuk benar-benar yakin, saya sarankan menambahkan dua baris untuk anda eclipse.ini
file di atas:
-vm
C:/Java/jdk1.6.0_27/bin
...di mana pada mesin saya C:/Java/jdk1.6.0_27/bin
dimana JVM saya tahu adalah 64-bit adalah terletak. Pastikan untuk memiliki folder bin
ada.
(Sebagai bonus, pada Windows 7, hal ini juga memungkinkan anda untuk benar-benar "pin tab" yang adalah mengapa aku harus melakukan ini untuk saya sendiri pemakaian)
Mungkin anda mencoba salah pilihan lagian. Aku punya kesalahan yang sama dengan yang mendukung error log:
Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
Im kasus saya, software ini tidak mendukung java 8 belum(script menggunakan lama JVM argumen) tapi aku punya jawa 8 secara default.