درست کریں: VM کے آغاز کے دوران خرابی پیش آگئی آبجیکٹ ہیپ کے ل enough کافی جگہ محفوظ نہیں رکھ سکی



مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں

اگرچہ جاوا ایپلٹیز ان دنوں ایک مقبول ویب ٹکنالوجی نہیں ہیں ، لیکن جاوا ورچوئل مشین کو براہ راست لینکس سرور پر تعینات کرنے کی ان گنت وجوہات ہیں۔ اگر آپ لینکس جاوا کمانڈ کو سیدھے سیدھے مجرد ہارڈ ویئر پر یا اپنے ہی VM کے اندر چلانے کی کوشش کرتے ہیں تو آپ کو یہ مل سکتا ہے کہ VM کے آغاز کے دوران خرابی پیدا ہوگئی جس سے آبجیکٹ ہیپ کے لئے کافی جگہ محفوظ نہیں ہوسکتی ہے۔



یہ شاید عجیب لگتا ہے کیونکہ کمانڈ چلانے کے ل you آپ کے پاس زیادہ سے زیادہ رام موجود ہے ، لیکن اس کی بڑی وجہ جسمانی اور ورچوئل میموری والے صفحات کے استعمال کے طریقے کی وجہ سے ایک خاص نرالا ہونا ہے۔ کچھ نسبتا large بڑے سائز کی وضاحت کرنا آپ کو اس پیغام کو مکمل طور پر نظرانداز کرنے اور جاوا کمانڈ کو اسی طرح چلانے کی اجازت دیتی ہے جس طرح آپ کسی اور کو چاہتے ہیں۔



طریقہ 1: کمانڈ لائن اختیارات کا استعمال

اگر آپ نے جاوا کو چلانے کی کوشش کی ہے اور یہ پیغام حاصل کرلیا ہے ، تو آپ یقینی طور پر یہ یقینی بنانے کے لئے پہلے سے ہی فری کمانڈ چلا چکے ہیں کہ پروگرام کو چلانے کے لئے میموری کی کافی فراہمی موجود ہے۔



جاوا اور مفت احکامات

نوٹ کریں کہ ہماری آزمائشی مشین پر ہمارے پاس تقریبا 2. 2.3 جی بی فزیکل ریم ہے اور ورچوئل میموری کا ایک بھی صفحہ ابھی تک استعمال نہیں کرسکا ہے۔ اگر آپ کو معلوم ہوگا کہ آپ کے پاس میموری کی کمی ہے تو ، پھر آپ دوبارہ کوشش کرنے سے پہلے چلنے والی دوسری چیزوں کو بند کرنا چاہیں گے۔ دوسری طرف ، جن لوگوں کو معلوم ہوا کہ ان کے پاس کافی میموری موجود ہے وہ براہ راست کسی سائز کی وضاحت کرنے کی کوشش کر سکتے ہیں۔

مثال کے طور پر ، ہماری مشین پر ہم کمانڈ java -Xms256m -Xmx512M کے طور پر چلانے کے قابل تھے اور اس نے اس طرح کام کیا جیسے توقع کی جاتی تھی۔ جاوا ورچوئل مشین اسٹارٹ اپ پر ریزرو کرنے کی کوشش کرتی ہے۔ چونکہ غیر منظم ورچوئل مشین فرضی طور پر غیر معمولی چیزیں کر سکتی ہے ، لہذا یہ کسی اور آزاد نظام پر غلطی کے پیغامات پھینک سکتی ہے۔ اس سے پہلے کہ آپ کو صحیح امتزاج مل جائے اس سے پہلے آپ ان دو اقدار کے ساتھ کھیلنا چاہتے ہو۔



یہ ایک مسئلہ ہوسکتا ہے اس سے قطع نظر کہ آپ اسے کس طرح سے چلا رہے ہیں کیوں کہ جے وی ایم کا آپ کے جی این یو / لینکس کو چلانے کے لئے استعمال ہونے والی VM کی قسم سے کوئی لینا دینا نہیں ہے۔

طریقہ 2: تبدیلی کو مستقل کرنے کے لئے متغیرات کو برآمد کرنا

جب آپ کو کوئی ایسی قیمت ملتی ہے جو کام کرتی ہے تو آپ اسے اس سیشن کے لئے مستقل بنانے کے لئے برآمد کرسکتے ہیں۔ مثال کے طور پر ، ہم نے باش کمانڈ پرامپٹ سے ایکسپورٹ _JAVA_OPTIONS = ’- Xms256M -Xmx512M’ استعمال کیا اور اس نے ہمیں جاوا کمانڈ کسی دوسرے آپشن کے بغیر چلانے کی اجازت دی جب تک کہ ہم اپنے سرور سے لاگ آؤٹ نہ کریں۔

جب ہم کسی دوسرے سیشن میں لاگ ان ہوتے ہیں تو اسے دوبارہ چلانے کی ضرورت تھی ، لہذا اگر آپ جاوا کمانڈ کو کثرت سے استعمال کرنے کا ارادہ رکھتے ہیں تو آپ اسے کسی بھی متعلقہ اسٹارٹ اسکرپٹ میں شامل کرنا چاہیں گے۔ ہم نے اپنی .bash_login فائل میں لائن شامل کردی اور ایسا لگتا ہے کہ جب بھی ہم لاگ ان پرامپٹ استعمال کرتے ہیں تو اسے دوبارہ چلائے بغیر ہی کام ہوتا ہے ، حالانکہ اگر آپ کسی مختلف شیل کے ساتھ کام کر رہے ہیں تو آپ کو اس کے لئے کوئی اور جگہ تلاش کرنی پڑسکتی ہے۔

آپ نے محسوس کیا ہوگا کہ صرف کچھ ہارڈویئر تشکیلات ہی اس خامی پیغام کو متحرک کرتی ہیں۔ اس کی وجہ یہ ہے کہ یہ عام طور پر مشینوں پر بہت زیادہ جسمانی ریم کے ساتھ ہوتا ہے لیکن اس کے استعمال کے طریقوں کو کم کرتا ہے۔ جاوا ایک بہت بڑا بلاک مختص کرنے کی کوشش کرے گا صرف یہ بتایا جائے کہ یہ نہیں ہوسکتا ہے ، جس کی ترجمانی اس کی یادداشت کے ختم ہونے سے ہوتی ہے۔

طریقہ 3: موجودہ جاوا کے اختیارات کی طباعت

اگر آپ کمانڈ لائن پر کام کر رہے ہیں اور جو آپ نے فی الحال _JAVA_OPTIONS ویلیو کو متعین کیا ہے اس کا فوری حوالہ چاہتے ہیں تو آسانی سے گونج run _JAVA_OPTIONS چلا دیں اور اس سے موجودہ اقدار کو فوری طور پر پرنٹ کردیا جائے گا۔ جب آپ کوشش کرنے کے لئے صحیح اعداد تلاش کرنے کی کوشش کر رہے ہو تو یہ خرابیوں کا سراغ لگانے کیلئے مفید ہے۔

یہ بات ذہن میں رکھیں کہ جب اس طے پانے کے لئے کسی اور کھیل کی ضرورت نہیں پڑتی ہے تو ، اگر آپ مجازی میموری کے مختصر اختتام پر کبھی بھی اپنے آپ کو حقیقی طور پر تلاش کرتے ہیں تو ، جاوا 'آبجیکٹ ہیپ کے ل space کافی جگہ محفوظ نہیں کرسکتا' پیغام پھینک دے گا۔ اگر یہ معاملہ ہے تو پھر آپ اس بات کی دوگنا چاہیں گے کہ فی الحال کون سے عمل چل رہا ہے اور ممکن ہے کہ سرور کو دوبارہ شروع کریں اگر وہ آپشن ہے۔ آپ مزید سویپ اسپیس بھی بناسکتے ہیں ، لیکن اگر یہ کوئی مسئلہ ہے تو عام طور پر بہتر ہے کہ کسی اور طرح سے اسے آزمائیں اور اسے درست کریں۔

شاذ و نادر ہی صورت میں کہ آپ کی ترتیبات ٹھیک معلوم ہورہی ہیں لیکن یہ اب بھی کام نہیں کررہا ہے ، اس بات کو یقینی بنائیں کہ آپ نے 64 بٹ جاوا پیکیج انسٹال کیا ہے کیوں کہ اس مسئلے سے ان کا استثنیٰ ہونا چاہئے۔ متناسب میموری کی ضروریات صرف جاوا کے 32 بٹ ورژن پر لاگو ہوتی ہیں۔ ہم نے مٹھی بھر معاملات میں پایا کہ 64 بٹ ورژن نے 32 بٹ ورچوئل مشین بنانے کی کوشش کی ، لہذا کمانڈ لائن پر -d64 آپشن کی وضاحت نے اسے ہمارے لئے طے کیا۔

3 منٹ پڑھا