แม้ว่า Java Applet จะไม่ใช่เทคโนโลยีเว็บยอดนิยมแล้ว แต่มียิ่งกว่าหนึ่งพันเหตุผลที่ต้องปรับใช้ Java Virtual Machine (JVM) โดยตรงบนเซิร์ฟเวอร์ Linux หากคุณพยายามรันคำสั่ง java บนฮาร์ดแวร์จริงหรือภายใน VM แล้วเจอข้อความ "error occurred during initialization of VM could not reserve enough space for object heap" อาจดูแปลกเพราะคุณน่าจะมี RAM พอ แต่เกิดจากข้อจำกัดเฉพาะในการจัดการหน่วยความจำทางกายภาพและเสมือน
วิธีที่ 1: ใช้ตัวเลือกบรรทัดคำสั่ง (Command Line Options)
หากลองรัน java แล้วเจอข้อความนี้ คุณน่าจะเคยรันคำสั่ง free เพื่อเช็คหน่วยความจำว่าพอหรือไม่

ในเครื่องทดสอบของเรามี RAM จริง 2.3 GB และยังไม่ได้ใช้หน่วยความจำเสมือนเลย หากคุณพบว่าหน่วยความจำติดขาด ให้ปิดโปรแกรมอื่นๆ ที่รันอยู่ก่อนลองใหม่ แต่ถ้ามีพื้นที่ว่างมาก ให้ลองระบุขนาด heap โดยตรง
เช่นบนเครื่องของเรา รัน java -Xms256m -Xmx512M ได้ผลปกติ คำสั่งนี้จำกัดขนาด heap ที่ JVM พยายามจองตอนเริ่มต้น เนื่องจาก JVM ที่ไม่มีข้อจำกัดอาจทำสิ่งผิดปกติ จึงอาจโยนข้อผิดพลาดแม้ระบบจะว่าง คุณอาจต้องลองปรับค่าทั้งสองตัวเลขจนพบค่าที่เหมาะสม
ปัญหานี้อาจเกิดขึ้นบนทุกแพลตฟอร์ม เพราะ JVM ไม่เกี่ยวกับประเภท VM ที่ใช้รัน GNU/Linux
วิธีที่ 2: ส่งออกตัวแปรเพื่อทำให้การเปลี่ยนแปลงถาวร (Exporting Variables)
เมื่อหาค่าที่ใช้ได้แล้ว ให้ส่งออก (export) เพื่อให้มีผลตลอดเซสชันนั้นๆ เช่นเราใช้ export _JAVA_OPTIONS='-Xms256M -Xmx512M' จาก bash prompt แล้วรันคำสั่ง java ได้โดยไม่ต้องใส่ตัวเลือกเพิ่ม จนกว่าจะ logout
ต้องรันใหม่ทุกครั้งที่ล็อกอินเซสชันใหม่ ดังนั้นหากใช้คำสั่ง java บ่อย ควรเพิ่มบรรทัดนี้ในสคริปต์เริ่มต้นที่เกี่ยวข้อง เราเพิ่มในไฟล์ .bash_login และใช้ได้ทุกครั้งที่ล็อกอิน แต่หากใช้ Shell อื่นอาจต้องหาตำแหน่งที่เหมาะสม
คุณอาจสังเกตว่าเฉพาะการกำหนดค่าฮาร์ดแวร์บางแบบเท่านั้นที่ทริกเกอร์ข้อผิดพลาดนี้ เพราะมักเกิดบนเครื่องที่มี RAM จริงมากแต่ ulimit ต่ำ Java พยายามจองบล็อกใหญ่ แล้วถูกปฏิเสธ จึงตีความว่าหมดหน่วยความจำ
วิธีที่ 3: แสดงตัวเลือก Java ปัจจุบัน (Printing Current Java Options)
หากทำงานบนบรรทัดคำสั่งและต้องการอ้างอิงค่า _JAVA_OPTIONS ปัจจุบัน ให้รัน echo $_JAVA_OPTIONS จะพิมพ์ค่าปัจจุบันออกมาทันที มีประโยชน์สำหรับการแก้ไขปัญหาตอนหาตัวเลขที่เหมาะสม
จำไว้ว่าแม้วิธีแก้นี้ควรไม่ต้องทำซ้ำ แต่ Java จะโยนข้อความ "could not reserve enough space for object heap" อีกครั้งหากคุณเจอปัญหาหน่วยความจำเสมือนจริง (virtual memory) ขาดแคลนจริงๆ ในกรณีนั้น ให้ตรวจสอบโปรเซสที่กำลังรัน และพิจารณารีสตาร์ทเซิร์ฟเวอร์หากทำได้ อาจสร้าง swap space เพิ่ม แต่โดยทั่วไปแนะนำให้แก้ไขปัญหาด้วยวิธีอื่น
ในกรณีหายากที่ตั้งค่าถูกต้องแต่ยังไม่ได้ ให้ตรวจสอบว่าติดตั้งแพ็กเกจ Java 64-bit แล้วหรือยัง เพราะควรไม่เจอปัญหานี้ ปัญหาหน่วยความจำติดต่อกัน (contiguous memory) เกี่ยวข้องกับ Java 32-bit เท่านั้น เราพบบางกรณีที่ Java 64-bit พยายามสร้าง VM 32-bit การระบุตัวเลือก -d64 บนบรรทัดคำสั่งแก้ปัญหาได้