سؤال

عندما يتعطل جهاز Java VM مع EXCEPTION_ACCESS_VIOLATION وينتج ملف hs_err_pidXXX.log، ماذا يشير ذلك؟الخطأ نفسه هو في الأساس استثناء مؤشر فارغ.هل يحدث ذلك دائمًا بسبب خطأ في JVM، أم أن هناك أسبابًا أخرى مثل خلل في الأجهزة أو تعارض البرامج؟

يحرر:هناك مكون أصلي، وهذا هو تطبيق SWT على win32.

هل كانت مفيدة؟

المحلول

في معظم الأحيان يكون هذا خطأً في VM.ولكن يمكن أن يكون سبب ذلك أي كود أصلي (على سبيل المثال.مكالمات JNI).

يجب أن يحتوي ملف hs_err_pidXXX.log على بعض المعلومات حول مكان حدوث المشكلة.

يمكنك أيضًا التحقق من قسم "الكومة" داخل الملف.العديد من أخطاء VM ناتجة عن مجموعة البيانات المهملة (خاصة في الأجهزة الافتراضية الأقدم).يجب أن يوضح لك هذا القسم ما إذا كانت البيانات المهملة قيد التشغيل وقت حدوث العطل.يوضح هذا القسم أيضًا ما إذا كانت بعض أقسام الكومة ممتلئة (الأرقام المئوية).

من المرجح أيضًا أن يتعطل جهاز VM في حالة انخفاض الذاكرة أكثر من غيره.

نصائح أخرى

تم العثور على الإجابة!

لقد واجهت نفس الخطأ ولاحظت أن الآخرين الذين قدموا محتويات ملف سجل pid كانوا يستخدمون Windows 64 بت.فقط مثلي.في ملف السجل النهائي، تم تضمين عبارة PATH.هناك أستطيع أن أرى أنه تم إدراج C:\Windows\SysWOW64 بشكل غير صحيح قبل:%SystemRoot%\system32.بمجرد تصحيحه، اختفى الاستثناء.

أول شيء يجب عليك فعله هو ترقية JVM الخاص بك إلى الأحدث.

هل يمكنك تكرار الموضوع؟أم يبدو أن الأمر يحدث بشكل عشوائي؟لقد واجهنا مؤخرًا مشكلة حيث كان جهاز JVM الخاص بنا يتعطل في كل مكان وفي أوقات عشوائية.وتبين أنها كانت مشكلة في الأجهزة.لقد وضعنا محركات الأقراص في خادم جديد واختفت تمامًا.

خلاصة القول، يجب ألا يتعطل JVM أبدًا، كما ذكر الملصق أعلاه إذا لم تقم بأي JNI، فإن حدسي هو أن لديك مشكلة في الأجهزة.

سيتم توثيق سبب المشكلة في ملف hs_err*، إذا كنت تعرف ما الذي تبحث عنه.ألقِ نظرة، وإذا كان الأمر لا يزال غير واضح، ففكر في نشر أول 5 أو 10 أسطر من تتبع المكدس والمعلومات الأخرى ذات الصلة (لا تنشر كل شيء، فهناك الكثير من المعلومات التي لن تساعد - ولكن عليك أن تعرف أي 1% يكون مهم :-) )

هل تستخدم أداة المتصفح وتقوم بتنفيذ جافا سكريبت في أداة المتصفح؟إذا كان الأمر كذلك، فهناك أخطاء في بعض إصدارات SWT تؤدي إلى تعطل JVM في التعليمات البرمجية الأصلية، في مكتبات Windows المختلفة.

مثالان (الذي فتحته) هما الخطأ 217306 و الخطأ 127960.ومع ذلك، فإن تقريري الأخطاء هذين ليسا تقريري الأخطاء الوحيدين عن تعطل JVM في SWT.

إذا كنت لا تستخدم أداة المتصفح، فلن تساعدك هذه الاقتراحات.في هذه الحالة، يمكنك البحث عن قائمة أخطاء SWT تسبب تعطل JVM.إذا لم تكن أيًا من هذه هي مشكلتك، فأنا أوصي بشدة بفتح تقرير خطأ باستخدام SWT.

أواجه نفس المشكلة مع تطبيق JNLP الذي كنت أستخدمه لفترة طويلة وهو موثوق به جدًا.بدأت المشكلة مباشرة بعد الترقية من Windows 7 إلى Windows 10.وفقًا للتحقيق الذي أجريته، فمن المرجح أن يكون هناك خطأ في نظام التشغيل Win 10.

ما يلي ليس حلاً، ولكنه حل قبيح.يوجد في دليل jre/bin javaws.exe.اذا انا النقر بزر الماوس الأيمن /خصائص/التوافق وتكتك شغل هذا البرنامج كمسؤول, ، بدأ تطبيق JNLP في العمل.

يرجى العلم أن هذا الأسلوب قد يسبب مشكلات أمنية ولا تستخدمه إلا إذا لم يكن لديك خيار آخر وتعرف ما تفعله بنسبة 100%.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top