Düzeltme: VM'nin başlatılması sırasında hata oluştu, nesne yığını için yeterli alan ayrılamadı
Java uygulamaları bugünlerde popüler bir web teknolojisi olmasa da, bir Java sanal makinesini doğrudan bir Linux sunucusuna yerleştirmenin sayısız nedeni vardır. Linux java komutunu ya ayrı bir donanım üzerinde ya da kendi VM'sinin içinde çalıştırmaya çalışırsanız, VM'nin başlatılması sırasında bir hata meydana gelebilir ve nesne yığın mesajı için yeterli alan ayrılmaz.
Muhtemelen bu garip görünüyor, çünkü bu komutu çalıştırmak için yeterli RAM'e sahip olmanız yeterlidir, ancak büyük ölçüde fiziksel ve sanal bellek sayfalarının kullanılma biçimindeki belirli bir tuhaflıktan kaynaklanır. Göreceli olarak büyük boyutların belirtilmesi, bu mesajı tamamen atlamanıza ve java komutunu diğerlerinden farklı şekilde çalıştırmanıza izin vermelidir.
Yöntem 1: Komut satırı seçenekleri kullanma
Java'yı çalıştırmayı denediyseniz ve bu mesajı almayı denediyseniz, muhtemelen programı çalıştırmak için yeterli miktarda bellek olduğundan emin olmak için zaten ücretsiz komutu çalıştırdınız demektir.
Test makinemizde 2.3 GB'lik fiziksel RAM'ımız olduğunu ve henüz sanal belleğin tek bir sayfasının kullanılmadığını fark ettiniz. Bir hafızanızın olduğunu fark ederseniz, tekrar denemeden önce koştuğunuz diğer şeyleri kapatmak isteyeceksiniz. Diğer taraftan, bol miktarda boş hafızaya sahip olduklarını belirtenler doğrudan bir beden belirtmeyi deneyebilir.
Örneğin, makinemizde java -Xms256m -Xmx512M komutunu çalıştırabiliyorduk ve aksi takdirde bekleneceği gibi çalıştı. Bu, Java sanal makinesinin başlangıçta ayırmaya çalıştığı yığın boyutunu kısıtlar. Sınırsız bir sanal makine varsayımsal olarak olağan dışı şeyler yapabileceğinden, başka türlü boş bir sistemde hata iletileri atabilir. Doğru kombinasyonu bulmadan önce bu iki değerle oynamak isteyebilirsiniz.
Bu, JVM'nin GNU / Linux'u çalıştırmak için kullanabileceğiniz VM türüyle hiçbir ilgisi olmadığı için bunu çalıştırdığınızdan bağımsız olarak sorun olabilir.
PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.Yöntem 2: Değişken Kalıcı Olmak İçin Değişkenleri Verme
Çalışan bir değer bulduğunuzda, bu oturum için kalıcı hale getirmek için dışa aktarabilirsiniz. Örneğin, bash komut isteminden _JAVA_OPTIONS = '- Xms256M-Xmx512M' dışa aktarımını kullandık ve sunucudan çıkış yapana kadar java komutunu başka bir seçenek olmadan kendi başımıza çalıştırabiliyorduk.
Başka bir oturuma giriş yaptığımızda tekrar çalıştırılması gerekiyordu, bu yüzden java komutunu sık sık kullanmayı planlıyorsanız, ilgili tüm başlangıç komut dosyalarına eklemek isteyebilirsiniz. Satırı, .bash_login dosyasına ekledik ve farklı bir kabukla çalışıyorsanız, başka bir konum bulmak zorunda kalmanıza rağmen, tekrar çalıştırmak zorunda kalmadan bir giriş istemi kullandığımızda her işe yaramış gibiydi.
Yalnızca belirli donanım yapılandırmalarının bu hata mesajını tetiklediğini fark etmiş olabilirsiniz. Bunun nedeni, genellikle, büyük bir fiziksel RAM'e sahip makinelerde, ancak bunun nasıl kullanıldığının daha düşük olmasıyla gerçekleşir. Java, sadece yapamayacağı söylenecek büyük bir blok ayırmaya çalışacak ve bu da hafızanın bitmek üzere yorumlandığı anlamına geliyor.
Yöntem 3: Geçerli Java Seçeneklerini Yazdırma
Komut satırında çalışıyorsanız ve şu anda _JAVA_OPTIONS değerini ayarladığınız öğeye hızlı bir başvuru yapmak istiyorsanız, echo $ _JAVA_OPTIONS öğesini çalıştırın ve geçerli değerleri hemen yazdırın. Bu, denenecek doğru sayıları bulmaya çalışırken sorun giderme için kullanışlıdır.
Bu düzeltmenin başka bir oyun oynamanın gerekmediği halde, Java'yı, sanal belleklerin kısa bir ucunda kendinizi gerçekten bulursanız, nesne yığını mesajı için yeterli alan ayırtamayacağını unutmayın. Bu durumda, o zaman hangi süreçlerin çalışmakta olduğunu iki kez kontrol etmek isteyeceksiniz ve eğer bir seçenekse sunucuyu yeniden başlatabilirsiniz. Ayrıca daha fazla takas alanı yaratabilirsiniz, ancak bu bir sorunsa, başka bir şekilde denemek ve düzeltmek genellikle daha iyidir.
Nadir durumlarda ayarlarınızın doğru görünmesine rağmen hala çalışmıyorsa, 64 bit Java paketini kurduğunuzdan emin olun, çünkü bu sorunun bağışık olması gerekir. Bitişik bellek gereksinimleri sadece Java'nın 32 bit sürümü için geçerlidir. 64-bit sürümün bir 32-bit sanal makine oluşturmaya çalıştığı bir avuç vakasında bulduk, bu yüzden komut satırındaki -d64 seçeneğini belirledik.
PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.