سؤال

لديّ. جار يستخدم على ما يبدو الكثير من الذاكرة ، ويلقي استثناءً "مساحة كومة جافا" (أو شيء مشابه).

لذلك حاولت تشغيل .jar عبر CMD مثل هذا:

C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m

هذا لم يحل المشكلة. نفس الخطأ. الآن ، عندما قمت بفحص علامة التبويب "العمليات" في مدير مهمة Windows ، لاحظت أن عملية جرة بلدي لديها ذاكرة أقل بكثير مما طلبت (مثل تشغيله بدون المعلمات).

لماذا يتجاهل المعلمات؟

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

شكرا ، مالكي :)

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

المحلول

الامر

javaw -jar MyJar.jar -Xms64m -Xmx128m

سوف تستخدم -xms ... و -xmx ... كمعلمات إلى طريقة "main (string [] args)".
المعلمات إلى يجب تمرير JVM قبل الجزء -الجار:

javaw -Xms64m -Xmx128m -jar MyJar.jar

يمكن رؤية سبب ذلك عندما ننفذ "Java -Version":

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

حيث المعلمات الخاصة بك -xms ... و -xmx ... هي خيارات لـ JVM.

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