تم تجاهل معلمات Java Heap Space XMX XMS
-
29-09-2019 - |
سؤال
لديّ. جار يستخدم على ما يبدو الكثير من الذاكرة ، ويلقي استثناءً "مساحة كومة جافا" (أو شيء مشابه).
لذلك حاولت تشغيل .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.